Werbung
Untersuche die Abfragen mit EXPLAIN
05.12.2009
09:24
geschrieben von TBT
Mit EXPLAIN zeigt MySQL genau an, wie es eine Abfrage ausführt. Dabei werden die genutzten wie auch nicht genutzten Indizes angezeigt. Des Weiteren gibt EXPLAIN Auskunft darüber wie die Tabellen gescannt und sortiert werden. Alles in allem eine gute Möglichkeit Flaschenhälse und Strukturfehler zu finden.
Code
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
EXPLAIN SELECT foo1, foo2
FROM bar1
INNER JOIN bar2 ON bar1.bar2_id = bar2.id
WHERE bar2.id BETWEEN 1 AND 20
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE bar1 ALL NULL NULL NULL NULL 7304 USING where
1 SIMPLE bar2 eq_ref PRIMARY PRIMARY 4 test.bar1.id 1Hier fehlt eindeutig ein Index auf die Spalte bar1.bar2_id, und nachdem man diesen Index hinzugefügt hat, sieht das Ergebnis wie folgt aus:
Code
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
EXPLAIN SELECT foo1, foo2
FROM bar1
INNER JOIN bar2 ON bar1.bar2_id = bar2.id
WHERE bar2.id BETWEEN 1 AND 20
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE bar2 range PRIMARY PRIMARY 4 NULL 8 USING WHERE
1 SIMPLE bar1 ref bar2_id bar2_id 4 test.bar2.id 12Kommentare
aktuell liegen noch keine Kommentare vor
Trackbacks
aktuell sind keine Trackbacks vorhanden