Teil 4: MySQL 4 - Optimierung bei Insert-Befehlen

SQL-Optimierung: Daten effizient in Tabellen einfügen

DELAYED_KEY_WRITE

Bei MyISAM-Tabellen besteht eine weitere Strategie dafür, den Indexcache weniger häufig leeren zu müssen, darin, die Option DELAYED_KEY_WRITE beim Anlegen der Tabelle zu verwenden. Dies ist möglich, wenn es keinen Beinbruch darstellt, falls ein Datensatz bei einem abnormalen Systemausfall nicht in die Haupttabelle geschrieben wird (was etwa der Fall sein könnte, wenn Sie MySQL zur Protokollierung verwenden).

Die Option sorgt dafür, dass der Indexcache nicht nach jedem Einfügevorgang, sondern nur gelegentlich geleert wird. Wenn Sie die verzögerte Leerung des Indexcache serverweit verwenden wollen, starten Sie mysqld mit der Option --delay-key-write. In diesem Fall wird das Schreiben von Indexblöcken für eine Tabelle verzögert, bis der Cache geleert werden muss, um Platz für andere Indexwerte zu schaffen, bis ein Befehl zum Leeren des Caches ausgeführt wird oder bis die Tabelle geschlossen wird.

Für einen Slave-Replikationsserver sollten Sie die Option --delay-key-write=ALL benutzen, um die Leerung des Indexcache für alle MyISAM-Tabellen unabhängig davon zu verzögern, wie sie ursprünglich auf dem Masterserver erstellt wurden.