PHP Portal » Blog » Untersuche die Abfragen mit EXPLAIN

Werbung

Untersuche die Abfragen mit EXPLAIN

geschrieben von

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
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 1

Hier 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
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 12

Kommentare

aktuell liegen noch keine Kommentare vor

Trackbacks

aktuell sind keine Trackbacks vorhanden