Untersuche die Abfragen mit EXPLAIN
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 1Code
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 12