Wo sich der Einsatz von MySQL 5 lohnt

30.09.2005
Von Yann Neuhaus

als Subsystem für eine "Master"-Datenbank, das keine umfassenden Backup/Recovery-Funktionen benötigt (zum Beispiel ein aus einer kommerziellen Datenbank gespeister Daten-Pool, aus dem schnell Reports generiert werden können);

wenn die Applikationslogik ohnehin Datenbank-extern geschrieben wird und abläuft, so dass keine ausgefeilten Datenbank-internen Programmierwerkzeuge erforderlich sind.

Die angebotenen Features sind zwar noch weit von Oracle entfernt, und ein versierter Oracle-PL/SQL-Programmierer wird viele Dinge bei den MySQL-Stored-Routines vermissen. Doch bedenkt man, dass früher komplexere Anwendungen (Schleifen, Ablaufstrukturen etc.) für MySQL zum Beispiel in Perl geschrieben wurden und die Skripte nicht in der Datenbank, sondern in einem externen Skript-Interpreter oder auf einem Web-Server abliefen, so hat sich mittlerweile einiges getan. Mit MySQL 5 braucht ein Datenbankadministrator oder PHP-orientierter Entwickler bei datennahen Operationen etwa für Loops oder If-Bedingungen nicht mehr auf eine externe Skriptsprache beziehungsweise Ablaufumgebung zurückgreifen.

Das neue Schema "information_schema" zeigt auch, dass MySQL auf dem richtigen Weg zum SQL-2003-Standard ist, der ein Metadaten-Verzeichnis verlangt. Bei Oracle ist dies das Data Dictionary beziehungsweise das SYS Schema. Dennoch existieren auch hier noch einige Fallstricke bei MySQL, so etwa im Security-Bereich: Wird eine Tabelle gelöscht, werden die Privilegien darauf nicht entfernt. Erzeugt derselbe Benutzer nun eine neue Tabelle mit demselben Namen, können die bislang für die alte Tabelle autorisierten User auf die neue Tabelle mit ihren bisherigen Rechten zugreifen.

Stabile Tools

Die MySQL-Tools sind in den letzten Release-Zyklen sehr stabil geworden und bieten einen großen Funktionsumfang. Der Query Browser und der MySQL-Administrator erlauben es, eine MySQL-Datenbank ohne das Kommandozeilen-Tool "mysql" zu verwalten. Funktional entspricht das der Oracle OEM Console in Java. Interessanterweise verfolgen Oracle und MySQL völlig unterschiedliche Strategien bei der Entwicklung von Administrations-Tools: Während sich MySQL entschieden hat, mit der grafischen Bibliothek des unterstützten Betriebssystems zu entwickeln (also kein Java), setzt Oracle seit der Version 10g auf einen Application Server mit Java Server Pages und einem Webbrowser als Client.