Teil 4: MySQL 4 - Optimierung bei Insert-Befehlen

SQL-Optimierung: Daten effizient in Tabellen einfügen

Indizes löschen

Wenn Sie beim Laden von Daten in MyISAM- oder ISAM-Tabellen Indizes löschen oder deaktivieren wollen, sollten Sie Ihre Situation genau bewerten, um herauszufinden, ob das sinnvoll ist. Wenn Sie nämlich nur wenige Daten in eine große Tabelle laden, kann es ohne spezielle Vorbereitung länger dauern, die Indizes neu aufzubauen, als die Daten zu laden.

Zum Löschen und Wiedererstellen von Indizes verwenden Sie DROP INDEX und CREATE INDEX oder aber die indexbezogenen Formen von ALTER TABLE. Zum De- und Reaktivieren von Indizes stehen hingegen zwei Alternativen bereit:

  • Sie verwenden die Formen DISABLE KEYS und ENABLE KEYS von ALTER TABLE:
    ALTER TABLE tbl_name DISABLE KEYS;
    ALTER TABLE tbl_name ENABLE KEYS;

    Diese Anweisungen schalten die Aktualisierung aller nicht eindeutigen Indizes in der Tabelle ab und wieder an.

  • Die Dienstprogramme myisamchk und isamchk erlauben die Manipulation von Indizes. Diese Dienstprogramme arbeiten direkt mit den Tabellendateien, d. h., Sie benötigen Schreibrechte für diese Dateien, um myisamchk und isamchk verwenden zu können. Ferner sollten Sie Vorsichtsmaßnahmen treffen, die verhindern, dass der Server auf die Tabellen zugreift, solange Sie die Dateien bearbeiten.