Teil 2: MySQL 4 - Optimierung der Indizes in Abfragen

SQL-Optimierung: Indexnutzung in Queries manuell steuern

Nutzung von Indizes

Die Anfrageoptimierung von MySQL nutzt natürlich die Indizes, zieht aber auch andere Informationen in Betracht. Die folgende Anfrage beispielsweise kann von MySQL sehr schnell ausgeführt werden, egal wie groß die Tabelle ist:

SELECT * FROM tbl_name WHERE 1 = 0;

In diesem Fall wertet MySQL die WHERE-Klausel aus, erkennt, dass keine Zeile diese Anfrage erfüllen kann, und macht sich gar nicht erst die Mühe, die Tabelle zu durchsuchen. Sie können dies mithilfe der EXPLAIN-Anweisung überprüfen, die MySQL anweist, Informationen darüber anzuzeigen, wie es eine SELECT-Anfrage ausführen würde, ohne diese tatsächlich auszuführen. Dazu schreiben Sie einfach nur das Wort EXPLAIN vor die SELECT-Anweisung:

mysql> EXPLAIN SELECT * FROM tbl_name WHERE 1 = 0;
+------------------+
| Comment |
+------------------+
| Impossible WHERE |
+------------------+

Normalerweise gibt EXPLAIN mehr Informationen zurück, unter anderem, welche Indizes verwendet werden, um Tabellen zu durchsuchen, die Typen der verwendeten Joins sowie einen Schätzwert, wie viele Zeilen in jeder Tabelle durchsucht werden müssten.