Rolf B: mysql: Slowquery untersuchen

Beitrag lesen

Hallo ursus,

in einem System mit vielen Life-Updates kann ein Index auch kontraproduktiv sein, das muss man fallweise betrachten.

Aber eine Query ohne Index auf eine 100K Tabelle, ja, das ist auf jeden Fall Käse.

Das Tempo der Query dürfte mit der Belastung der DB oder des Servers schwanken. Ein Share-Hoster wird da nicht unbedingt reichlich Ressourcen spendieren. Ist wenig los, liegt die Table komplett im Cache. Oder der Server kann zumindest ungestört durch den Tablespace schmökern. Ist viel los, gibt's Ärger um die freien Cache-Plätze sowie um den Lesekopf der Festplatte, und er muss den Tablespace von der Platte lesen, ggf. noch in Konkurrenz mit dem Apache. Wenn die Festplatte keine SSD ist, dann wird das ein lustiger Tanz mit dem Schreib-/Lesekopf.

Hinzu kommt der ORDER BY. Wenn die WHERE-Bedingung mehr als eine Row treffen kann, führt er vermutlich eine Sortierung von X Zeilen mit gleichem Key durch. Keine Ahnung, ob MYSQL an Hand der WHERE Bedingung merkt, dass der ORDER BY effektlos ist. Und wenn viel in der DB los ist, wird er diese Sortierung nicht unbedingt im RAM ausführen, sondern auf Platte.

Rolf

--
sumpsi - posui - clusi