Teil 3: MySQL 4 - Optimierung von Anfragen
SQL-Optimierung: Tabellen und Spalten anpassen
Verwenden Sie einen künstlichen Index
Künstliche Indexspalten können manchmal sehr nützlich sein. Eine mögliche Technik wäre, einen von den anderen Spalten abhängigen Hash-Wert zu erzeugen und diesen in einer separaten Spalte abzulegen; anschließend finden Sie die Zeilen, indem Sie nach den Hash-Werten suchen.
Diese Vorgehensweise ist allerdings nur bei Anfragen mit exakter Übereinstimmung sinnvoll (Hash-Werte sind nicht geeignet für Bereichssuchen mit Operatoren wie <
oder >=)
. Hash-Werte werden seit MySQL 3.23 mit der Funktion MD5()
erzeugt. Weitere Optionen sind SHA1()
oder CRC32()
, die mit MySQL 4.0.2 bzw. 4.1 eingeführt wurden.
Ein Hash-Index kann insbesondere für BLOB
-Spalten sehr praktisch sein. Zum einen konnten Sie diese Typen vor MySQL 3.23 nicht indizieren. Aber selbst bei 3.23.2 oder neueren Versionen kann es schneller gehen, BLOB
-Werte mithilfe eines Hash-Werts statt über die eigentliche BLOB
-Spalte zu suchen.