Wo sich der Einsatz von MySQL 5 lohnt

30.09.2005
Von Yann Neuhaus

Einsatz im Web-Shop

So kann man die Verkaufsdaten (schreibender Zugriff) in einer InnoDB-Tabelle ablegen, während die Produktinformationen in einer MyISAM-Tabelle besonders performant lesbar sind. Denn hier müssen keine lesekonsistenten Versionen der Datenblöcke erstellt, keine Transaktions-IDs generiert und keine aufwändigen Locking-Mechanismen abgearbeitet werden.

Aber man kann nicht nur bei überwiegend lesenden Anwendungen mit der MyISAM-Engine punkten. Für gewisse Arten von Transaktionen sind die hochgradig parallelisierbaren Konzepte von Systemen wie Oracle gar nicht notwendig. So zum Beispiel bei der Konsolidierung von Verbindungsdaten in einer zentralen Log-Datenbank (Wer hat sich wo und wie lange eingeloggt?). Rollbacks sind hier nicht notwendig, und der Schreibvorgang beschränkt sich auf das Anhängen eines einzigen, relativ kleinen Datensatzes an eine bestehende Tabelle. Zudem ist nicht mit Tausenden von Einträgen pro Sekunde zu rechnen. MySQL mit MyISAM ist hier die perfekte, effiziente und kostengünstige Lösung.

Interessante "Nebenrolle"

Im Bereich Backup/Recovery wurden die Schwächen von MySQL schon aufgezeigt. Wenn aber die MySQL-Datenbank im Crash-Fall aus einem Legacy-System schnell wieder neu aufgebaut werden kann, sind diese Features gar nicht gefragt. Ein Beispiel dafür: Auf einer Oracle-Datenbank läuft eine transaktionsorientierte Anwendung wie Kontobuchungen, deren Daten einmal pro Nacht in eine MySQL-Datenbank geladen werden, um daraus Reports zu generieren. Sollte MySQL nun abstürzen, wird die Datenbank einfach wieder aus dem Quellsystem neu aufgebaut - die umfangreichen Backup/Recovery-Funktionen wie sie Oracle bietet, sind nicht erforderlich. Unterm Strich lässt sich also sagen, dass für Datenbanken, die nicht "Master" der Daten sind und deshalb auch kein ausgefeiltes Backup/Recovery benötigen, Systeme wie MySQL in Betracht gezogen werden können.

Ähnlich verhält es sich mit der bislang eher am Anfang stehenden Implementierung der Stored Routines von MySQL: Solange ein Großteil der Applikations-Logik im Web- oder Applikations-Server mit PHP abläuft, braucht man keine komplexen Abfragesprachen wie PL/SQL von Oracle.