Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Langsame MySQL-Abfrage - Warten auf Abfrage-Cache-Sperre

Ich habe mein langsames Abfrageproblem gelöst. Um das Problem zusammenzufassen:Es dauerte 22 Sekunden, um 7000 Zeilen aus einer indizierten Tabelle mit 20 Millionen Zeilen und 1,7 GB abzufragen. Das Problem war, dass der Cache zu klein war und die Abfrage für jede Abfrage auf die Festplatte gehen musste. Ich würde denken, dass der Festplattenzugriff schneller sein würde als das, was ich sah, weil ich eine indizierte Spalte verlassen habe, sodass die Menge der von der Festplatte gelesenen Daten gering sein sollte. Aber ich vermute, dass der Zugriff auf den InnoDB-Speicher auf der Festplatte viel Overhead verursacht.

Sobald ich innodb_buffer_pool_size=1024M eingestellt habe in der my.ini-Datei würde die anfängliche Abfrage lange dauern, aber alle nachfolgenden Abfragen würden in weniger als einer Sekunde beendet.

Leider hat das Profiling nicht wirklich geholfen.