Teil 1: MySQL4 - Optimierung von Anfragen

SQL-Optimierung: Indizes richtig einsetzen

Schnellere Suche

Wenn wir nach einem Wert suchen, der erst irgendwo in der Mitte der Indextabelle liegt, gibt es Positionierungsalgorithmen, um den ersten übereinstimmenden Indexeintrag zu finden, ohne die Tabelle linear durchsuchen zu müssen (beispielsweise eine binäre Suche). Auf diese Weise können wir eine schnelle Positionierung auf den ersten übereinstimmenden Wert vornehmen und sparen uns viel Zeit bei der Suche.

Datenbanken verwenden unterschiedliche Techniken für die schnelle Positionierung auf einen Indexwert, aber welche das genau sind, ist hier nicht so wichtig. Wichtig ist, dass sie funktionieren und dass die Indizierung etwas Gutes ist.

Vielleicht fragen Sie sich, warum wir nicht einfach die Datendatei sortieren und auf die Indexdatei verzichten. Hätte dies nicht die gleiche Steigerung der Suchgeschwindigkeit zur Folge? Dies wäre tatsächlich der Fall, wenn die Tabelle einen einzelnen Index hätte. Aber vielleicht wollen Sie einen zweiten Index hinzufügen – z.B. einen für die Kundennamen und einen zweiten für die Kunden- oder Telefonnummern –, und Sie können die Datendatei sicher nicht auf zwei verschiedene Arten gleichzeitig sortieren.

Die Verwendung von Indizes als von der Datendatei getrennte Einheiten löst dieses Problem und ermöglicht die Erstellung mehrerer Indizes. Außerdem sind Zeilen im Index in der Regel kürzer als Datenzeilen. Wenn Sie neue Werte hinzufügen oder löschen, dann ist es einfacher, die kürzeren Indexwerte zu verschieben als die langen Datenzeilen.