Teil 1: MySQL4 - Optimierung von Anfragen

SQL-Optimierung: Indizes richtig einsetzen

SQL-Datenbanken wie MySQL enthalten zwar eine gewisse Eigenintelligenz zu Performance-Optimierung von Anfragen. Doch mit etwas manueller Hilfe lassen sich viele Queries beschleunigen und die Antwortzeiten der Datenbank drücken. Teil 1 der Serie beschäftigt sich mit dem richtigen Einsatz von Indizes.

Die Welt der relationalen Datenbanktheorie wird von Tabellen und Mengen sowie von Operationen auf diesen Tabellen und Mengen beherrscht. Eine Datenbank ist eine Menge von Tabellen, und eine Tabelle ist eine Menge aus Zeilen und Spalten. Wenn Sie mithilfe einer SELECT-Anfrage Zeilen aus einer Tabelle abrufen, erhalten Sie ebenfalls eine Menge aus Zeilen und Spalten. Dabei handelt es sich um abstrakte Konzepte, die nichts mit der einem Datenbanksystem zugrunde liegenden Darstellung der Daten für die Verarbeitung Ihrer Tabellen zu tun haben. Eine weitere Abstraktion ist, dass die Operationen auf Tabellen alle gleichzeitig erfolgen; Anfragen kann man sich als eine Menge von Operationen vorstellen, und in der Mengenlehre gibt es kein Zeitkonzept.

Im wirklichen Leben sieht es natürlich ganz anders aus. Datenbankmanagement-Systeme implementieren abstrakte Konzepte, jedoch auf realer Hardware und unter Berücksichtigung der realen Beschränkungen. Anfragen brauchen also Zeit – manchmal sehr viel Zeit. Und weil wir ungeduldige Wesen sind, die auf nichts warten können, verlassen wir die abstrakte Welt der unmittelbaren mathematischen Operationen in großer Zahl und suchen nach Verfahren, um unsere Anfragen zu beschleunigen.

Glücklicherweise gibt es entsprechende Möglichkeiten. Wir legen einen Index auf Tabellen, sodass der Datenbankserver die Zeilen schneller findet. Wir überlegen, wie wir Anfragen so formulieren können, dass sie diese Indizes optimal nutzen können. Wir schreiben Anfragen so, dass der Einplanungsmechanismus des Servers genutzt wird, damit die Anfragen verschiedener Clients besser kooperieren können. Wir denken darüber nach, was auf der benutzten Hardware passiert und wie wir ihre physischen Beschränkungen umgehen und damit die Performance verbessern können.

Um genau diese Probleme dreht sich diese Artikelserie. Sie soll Ihnen helfen, die Performance Ihres Datenbanksystems zu optimieren, sodass Ihre Anfragen so schnell wie möglich verarbeitet werden. MySQL ist schon relativ schnell, aber selbst die schnellste Datenbank kann Anfragen schneller ausführen, wenn Sie ihr dabei helfen.

MySQL4: Konfiguration, Administration und Entwicklung
MySQL4: Konfiguration, Administration und Entwicklung

Unsere neue Serie zur Optimierung von MySQL-Anfragen basiert auf Kapitel 4 “Optimierung von Anfragen“ des Standardwerks „MySQL 4 – Konfiguration, Administration und Entwicklung“ von Paul Dubois aus dem SAMS-Verlag. Weitere MySQL-Bücher und eBooks auch von Paul Dubois finden Sie in unserem Partner-Buchshop bei informit.de.

Artikelserie

Teil 1: SQL-Optimierung: Indizes richtig einsetzen

Teil 2: SQL-Optimierung: Indexnutzung in Queries manuell steuern

Teil 3: SQL-Optimierung: Tabellen und Spalten anpassen

Teil 4: SQL-Optimierung: Daten effizient in Tabellen einfügen

Teil 5: SQL-Optimierung: Manuelles Priorisieren und Sperren

Teil 6: SQL-Optimierung: Server richtig konfigurieren