MySQL Performance Cheat Sheet

Allgemein

  • Die Daten so klein wie möglich bekommen.
  • Den jeweils effizientesten (d. h. kleinstmöglichen) Datentyp verwenden. (z.B. ist MEDIUMINT ca. 25% kleiner als INT)
  • Wenn möglich, Spalten als NOT NULL deklarieren. => Spart ein Bit je Spalte

Regeln beim Aufbau von SQL Queries

  • Das Sternchen bei SELECT * FROM.. sollte vermieden werden. (mehr infos s.u.)
  • LEFT JOIN und RIGHT JOIN bei großen Tabellen und Datenmengen vermeiden. Möglichst ein JOIN ersetzen und mit Unterabfragen (Subselect)  versuchen das gleiche Ergebniss zu erhalten. Hinweis: Nicht immer Möglich
  • Beachtung des Datentypes bei der Angabe der WHERE Bedingungen in der Abfrage. Wenn die Spalte z.B. VAHRCHAR als Datentyp hat, den Wert bei der Abfrage unbedingt in Anführungsstriche setzen.  Wirkung: Nutzung des Indexes
  • Bei WHERE-Bedingungen mit zeitlichen Einschränkungen und Filter Datumsfunktionen vermeiden. Gut: expired < '2015-11-22 18:00:00' Schlecht: WHERE UNIX_TIMESTAMP(expired) < 1448229347

Index setzen

  • Bei Datum und Zeitfiltern de jeweilige Spalte als Index setzen.

Folgende Artikel könnten auch interessieren