Teil 4: MySQL 4 - Optimierung bei Insert-Befehlen

SQL-Optimierung: Daten effizient in Tabellen einfügen

Temporäre Tabellen

Die oben beschriebenen Konzepte zum Laden von Daten gelten auch für die Umgebung mit kombinierten Anfragen, in denen Clients unterschiedliche Operationen ausführen. Beispielsweise könnten Sie versuchen, ganz allgemein lange SELECT-Anfragen für Tabellen zu vermeiden, die häufig aktualisiert werden.

Die Folge sind konkurrierender Zugriff auf die Tabelle und außerdem eine unzureichende Performance bei Schreiboperationen. Eine mögliche Abhilfe bestünde darin, beim Schreiben hauptsächlich INSERT-Operationen auszuführen, neue Datensätze in eine temporäre Tabelle einzutragen und diese Datensätze in bestimmten Zeitabständen der Haupttabelle als Ganzes hinzuzufügen.

Das ist nicht sinnvoll, wenn Sie unmittelbar darauf auf die neuen Datensätze zugreifen müssen, aber wenn Sie es sich leisten können, sie für kurze Zeit zwischenzuspeichern, ohne Zugriff auf sie zu haben, dann sind temporäre Tabellen in zweierlei Hinsicht eine gute Lösung: Erstens reduzieren sie den Umfang des konkurrierenden Zugriffs, der durch SELECT-Anfragen auf der Haupttabelle entsteht, sodass die Anfragen schneller ausgeführt werden können. Zweitens dauert es weniger lange, mehrere Datensätze aus der temporären Tabelle in die Haupttabelle zu laden, als einzelne Datensätze zu laden; der Indexcache muss erst nach jedem Laden, das per Stapelverarbeitung erfolgt, geleert werden, nicht nach jeder einzelnen Zeile.

Eine Anwendungsmöglichkeit für diese Strategie ist die Protokollierung von Webseitenzugriffen von Ihrem Webserver in eine MySQL-Datenbank. In diesem Fall ist es mit hoher Wahrscheinlichkeit auch nicht unbedingt erforderlich, die einzelnen Einträge direkt in die Haupttabelle einzutragen.