PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : alle Daten löschen die älter als 2 Monate sind



dumbunixuser
07-02-2005, 14:29
Ich habe eine 80 GB grosse Datenbank. Alles läuft sehr langsam. Deshalb will ich alles löschen was älter als 2 Monate ist.

Ich habe ein date Feld mit dem Typ date

DELETE from pictures WHERE date < DATE_SUB(CURRENT_DATE, INTERVAL 80 DAY);

das funktioniert nicht, die Datenbank bleibt 80 GB. Ich habe die Syntax aus dem Database Journal von Internet.com (dort gab es einen Artikel über Datum/Zeit Funktionen in MySQL)

bitte gebt mir die korrekte Syntax an.

Jasper
07-02-2005, 14:35
selbst wenn du alles löschen würdest, die datenbank bleibt bei 80gb weil die tabellen und datenfiles nicht automatisch geschrumpft werden.

da hilft eine reorganisation: altdaten löschen, daten exportieren, datenfiles neu anlegen, daten importieren.


-j

dumbunixuser
07-02-2005, 15:56
merci für die Antwort

geht das nicht auch mit http://dev.mysql.com/doc/mysql/de/table-maintenance.html (myisamchk)?

Hans-Georg Normann
07-02-2005, 22:28
So gut kenn ich mysql nicht, aber was ist mit mysqldump? Nach dem Löschen werden die Daten per mysqldump extrahiert, dann die Datenbanken "platt" gemacht und anschließend die Dumpfiles per MySql neu einlesen. Bei 80 GB könnte das aber "einige Minuten" dauern.

Hans

Gaert
07-02-2005, 22:46
Sehr wahrscheinlich hilft dir das hier: http://dev.mysql.com/doc/mysql/en/optimize-table.html

Gruß,

Gaert