Pit: mysql: Slowquery untersuchen

Beitrag lesen

Hallo Rolf,

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.

Ja, genau so ein Szenario kann ich mir gut vorstellen...

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.

Weiß auch nicht, wie mysql das handhabt. Aber hier kann ich ja reagieren. Ich muß nochmal genau prüfen, ob der ORDER BY wirklich effektlos ist, denn die betreffende ID kann ist in dieser Tabelle ein Fremdschlüssel, sie ist also nicht unique. Aber ich bin der Meinung, dass sie bereits über B_Art selektiert wird und dann müßte sie doch wieder unique sein. Wie gesagt, ich schau mir das morgen genauer an und werfe den Order by dann ggf. raus.

Vielen Dank jedenfalls an Dich und Ursus für die Hilfe und die Anregungen zu diesem Thema.

Pit