Key Buffer Tuning MyISAM MySQL
Zum optimieren des MySQL MyISAM Key Buffer Cache, der Standardmäßig auf 16MB eingestellt ist, muß man folgende Abfrage innerhalb von MySQL ausführen:
mysql> SELECT CONCAT(ROUND(KBS/POWER(1024, IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999), \ SUBSTR(' KMG',IF(PowerOf1024<0,0, IF(PowerOf1024>3,0,PowerOf1024))+1,1)) \ recommended_key_buffer_size FROM (SELECT LEAST(POWER(2,32),KBS1) KBS FROM (SELECT SUM(index_length) KBS1 \ FROM information_schema.tables WHERE engine='MyISAM' AND \ table_schema NOT IN ('information_schema','mysql')) AA ) A, (SELECT 2 PowerOf1024) B;
Als Ausgabe erhält man dann die tatsächlich benötigte Größe für die key buffer size
+-----------------------------+ | recommended_key_buffer_size | +-----------------------------+ | 3111M | +-----------------------------+
um die key_buffer_size anzupassen, muß die my.cnf wie folgt angepaßt werden:
[mysqld] # #key_buffer = 64M key_buffer_size = 3200M
Es wird auf der MySQL Webseite empfohlen anstelle der Variablen key_buffer die Variable key_buffer_size zu setzen, es darf auch nur eine gesetzt werden, da MySQL sich sonst immer am niedrigsten Wert orientiert und diesen Einsetzt.