Teil 3: MySQL 4 - Optimierung von Anfragen

SQL-Optimierung: Tabellen und Spalten anpassen

Deklarieren Sie Spalten als NOT NULL

Damit erzielen Sie eine schnellere Verarbeitung und brauchen weniger Speicherplatz. Außerdem werden die Anfragen manchmal vereinfacht, weil Sie nicht auf NULL als Sonderfall testen müssen.

Verwenden Sie ENUM-Spalten

Wenn Sie eine Zeichenkettenspalte haben, in der nur begrenzt viele unterschiedliche Werte vorkommen können, sollten Sie sie als ENUM-Spalte verwenden. ENUM-Werte können sehr schnell verarbeitet werden, weil sie intern als numerische Werte behandelt werden.

Verwenden Sie PROCEDURE ANALYSE()

Wenn Sie MySQL 3.23 oder höher einsetzen, führen Sie PROCEDURE ANALYSE() aus, um Informationen über die Spalten in Ihrer Tabelle zu erhalten:

SELECT * FROM tbl_name PROCEDURE ANALYSE();
SELECT * FROM tbl_name PROCEDURE ANALYSE(16,256);

Eine Spalte des Ergebnisses zeigt einen Vorschlag für den optimalen Spaltentyp für jede Spalte in Ihrer Tabelle an. Das zweite Beispiel weist PROCEDURE ANALYSE() an, keine ENUM-Typen vorzuschlagen, in denen mehr als 16 Werte verwendet oder mehr als 256 Byte belegt werden (Sie können diese Werte natürlich beliebig abändern). Ohne diese Beschränkungen könnte die Ausgabe sehr lang sein; ENUM-Deklarationen sind häufig schwierig zu lesen.

Mithilfe der Ausgabe von PROCEDURE ANALYSE() können Sie feststellen, ob Ihre Tabelle dahingehend geändert werden sollte, einen effizienteren Typ zu verwenden. Spaltentypen können mit ALTER TABLE geändert werden.