Teil 4: MySQL 4 - Optimierung bei Insert-Befehlen

SQL-Optimierung: Daten effizient in Tabellen einfügen

De- und Reaktivierung von Indizes

Die Anweisungen DISABLE KEYS und ENABLE KEYS sind die zu bevorzugende Methode zur De- und Reaktivierung, weil hier der Server die Arbeit erledigt. Allerdings sind sie erst seit MySQL 4 vorhanden (beachten Sie, dass der Server die Optimierung automatisch durchführt, wenn Sie LOAD DATA verwenden, um Daten in eine leere MyISAM-Tabelle zu laden).

Um die Indizes einer MyISAM-Tabelle »manuell« zu deaktivieren, vergewissern Sie sich zunächst, dass der Server die Tabelle tatsächlich in Ruhe lässt. Wechseln Sie dann in das Datenbankverzeichnis, und führen Sie den folgenden Befehl aus:

% myisamchk --keys-used=0 tbl_name

Wenn Sie Daten in die Tabelle geladen haben, reaktivieren Sie den Index wie folgt:

% myisamchk --recover --quick --keys-used=n tbl_name

n ist eine Bitmaske, die angibt, welche Indizes zu aktivieren sind. Dabei entspricht Bit 0 dem Index 1. Wenn also eine Tabelle drei Indizes hat, dann sollte n den Wert 7 haben (binär 111). Sie können die Indexnummern mithilfe der Option --description ermitteln:

% myisamchk --description tbl_name

Die Befehle für ISAM-Tabellen sind ähnlich, nur müssen Sie isamchk statt myisamchk verwenden, und der Wert --keys-used für isamchk gibt den zu verwendenden Index mit der höchsten Nummer an (bei einer Tabelle mit drei Indizes müsste n dann den Wert 3 haben).