Ok, das ist sicher kein Tipp der gestandene Datenbank-Admins hinter dem Ofen hervorlocken kann – dennoch wissenswert: wer in seinen Skripten eine sehr hohe Anzahl an Datenbank Querys anwendet und dementsprechend lange Skriptlaufzeiten erlebt, sollte sich überlegen ein paar Indizes zu setzen. Anstatt den Datensatz entsprechend dem Query durch sequentielles Durchsuchen der Tabelle zu finden, kann die Tabelle bei vorhandenem Index anhand von Zeigern durchsucht werden; dieser Vorgang ist deutlich schneller. Allerdings machen sich die Auswirkungen auch erst bei großen Datenmengen, sprich mehrere 1000 Zeilen pro Tabelle, bemerkbar.
Um die Datenbank für das eigene Skript zu optimieren, sollte der Index über alle Felder angelegt werden, die in den kritischen Querys als Kondition herangezogen werden – verwendet mein Query in der WHERE-Kondition 3 mit logischem Und verknüpfte Felder title, text & description sollte der Index (als Index Typ sollte “Index” gewählt werden) ebenfalls diese 3 Felder umfassen. Auch schon bei geringeren Tabellengrößen (< 10.000 Einträge) kann die Dauer des einzelnen Querys deutlich (> 80%) verringert werden. Falls das Skript also zu lange läuft, einfach mal einen Index setzen.
HINWEIS: Die meisten Fertig-Systeme – ob CMS, Shop oder Forum – sind bereits von Haus aus optimiert, sodass in der Regel hier keine weiteren Indizes gesetzt werden müssen.
Tags: basics, beschleunigung, datenbank, laufzeit, mysql, query, schneller, skript, speed, verringern
