Hallo,
ich habe hier einen mysql Server mit einer großen Datenbank am laufen.
Die Datenbank enthält extrem viele alte Einträge, die überhaupt nicht mehr benötigt werden, und mittlerweile ist aufgrund der Größe der Datenbank (ca. 18GB) und der zur Verfügung stehenden Ressourcen die performance extrem mies.
Leider hat derjenige der sich das ausgedacht hat nicht nachgedacht, daher handelt es sich um eine MYISAM table, und alte Einträge werden nie gelöscht, obwohl im Prinzip immer nur die Einträge der letzen 24h benötigt werden. (dann wäre die ganze Datenbank vermutlich immer kleiner als 100mb, statt 18GB).
Ich würde daher gerne alle alten Einträge löschen, und die Tabelle auf InnoDB umstellen, und dann regelmäßig alle Einträge die älter als 24h Stunden sind löschen.
Wie gehe ich da am besten vor?
Das Problem ist, wenn ich jetzt einfach mit einem delete query alle Einträge lösche die älter als 24h sind, und auf InnoDB umstelle, wird die ganze Tabelle vermutlich mehrere Stunden blockiert sein, was eigentlich nicht passieren darf.
Gibt es da eine bessere Vorgehensweise?
ich habe hier einen mysql Server mit einer großen Datenbank am laufen.
Die Datenbank enthält extrem viele alte Einträge, die überhaupt nicht mehr benötigt werden, und mittlerweile ist aufgrund der Größe der Datenbank (ca. 18GB) und der zur Verfügung stehenden Ressourcen die performance extrem mies.
Leider hat derjenige der sich das ausgedacht hat nicht nachgedacht, daher handelt es sich um eine MYISAM table, und alte Einträge werden nie gelöscht, obwohl im Prinzip immer nur die Einträge der letzen 24h benötigt werden. (dann wäre die ganze Datenbank vermutlich immer kleiner als 100mb, statt 18GB).
Ich würde daher gerne alle alten Einträge löschen, und die Tabelle auf InnoDB umstellen, und dann regelmäßig alle Einträge die älter als 24h Stunden sind löschen.
Wie gehe ich da am besten vor?
Das Problem ist, wenn ich jetzt einfach mit einem delete query alle Einträge lösche die älter als 24h sind, und auf InnoDB umstelle, wird die ganze Tabelle vermutlich mehrere Stunden blockiert sein, was eigentlich nicht passieren darf.
Gibt es da eine bessere Vorgehensweise?