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.