Teil 3: MySQL 4 - Optimierung von Anfragen

SQL-Optimierung: Tabellen und Spalten anpassen

Verwenden Sie OPTIMIZE TABLE zum Aufräumen fragmentierter Tabellen

Tabellen, die häufig verändert werden – insbesondere Tabellen mit Spalten variabler Länge – unterliegen häufig einer Fragmentierung. Die Fragmentierung ist von Nachteil, weil Speicher in den Festplattenblöcken, in denen Ihre Tabelle abgelegt wird, ungenutzt bleibt.

Mit der Zeit müssen Sie immer mehr Blöcke lesen, um ganze Zeilen zu erhalten, und die Performance sinkt. Das gilt für alle Tabellen mit Zeilen variabler Länge, betrifft aber insbesondere BLOB-Spalten, weil deren Größe so stark variieren kann. Die regelmäßige Ausführung von OPTIMIZE TABLE hilft Ihnen, die Performance Ihrer Tabellen aufrechtzuerhalten.

OPTIMIZE TABLE funktioniert bei MyISAM- und BDB-Tabellen, defragmentiert werden aber tatsächlich nur MyISAM-Tabellen. Eine Defragmentierungsmethode, die bei allen Tabellentypen funktioniert, besteht darin, den Tabelleninhalt mit mysqldump zu sichern und die Tabelle dann zu löschen und mit der Sicherungsdatei erneut zu erstellen:

% mysqldump --opt db_name tbl_name > dump.sql
% mysql db_name < dump.sql