MySQL Optimierung

  • Generell ist es sinnvoll Datensätze so klein wie möglich zu halten, also die Datensatztypen gut auf die aufzunehmenden Daten anzupassen und keinen Platz zu verschwenden. Jedes nicht benötigte Byte benötigt zusätzliche (und überflüssige) Zeit bei der Verarbeitung.
  • Wurden umfangreiche Teile einer Tabelle gelöscht oder viele Änderungen an einer Tabelle mit Datensätzen variabler Länge durchgeführt, wird nicht benötigter Speicherplatz mit ‚OPTIMIZE TABLE‘ wieder freigegeben und der Index neu erstellt.
  • Generell sind MyISAM Tabellen mit festen Datensatzlängen schneller als MyISAM-Tabellen mit Datensätzen variabler Länge. (z.B. VARCHAR -> CHAR)
  • Es sollte wo immer möglich ‚NOT NULL‘ verwendet werden.
  • Nur so viele Indexe verwenden wie notwendig. Nicht verwendete Indexe verlangsamen die Datenbank, da sie überflüssigerweise zusätzlich gepflegt werden müssen.
  • Anstelle eines ‚SELECT *‘ ist es performanter wirklich nur die Datenfelder zu selektieren, welche auch wirklich anschließend benötigt werden. So wird ungenutzter Overhead vermieden.
  • Durch ein ‚EXPLAIN EXTENDED SELECT …‘ kann erkannt werden, ob die angelegten Indexe tatsächlich wie geplant verwendet werden.

Weitere Links