Die Neuerungen in MySQL 5.1

Seite 2: GUIs, Weiterentwicklung

Inhaltsverzeichnis

Die MySQL Workbench hilft beim visuellen Entwurf neuer Datenbanken.

Für MySQL existieren diverse Administrationswerkzeuge mit grafischer Benutzeroberfläche. Zu den schon seit Jahren verfügbaren Programmen (MySQL Query Browser und MySQL Administrator) sind weitere GUIs hinzugekommen: Die MySQL Workbench ermöglicht den visuellen Entwurf von Datenbankschemata. Das Programm steht momentan nur für Windows zur Verfügung, die Linux-Version befindet sich erst im Alpha-Stadium.

Das MySQL Migration Toolkit ermöglicht den Import von Datenbanken aus anderen Datenbanksystemen.

Das auf Java basierende und damit plattformunabhängige MySQL Migration Toolkit hilft dabei, Datenbanken aus anderen Datenbanksystemen nach MySQL zu migrieren. Für die eigentlichen Tabellen und deren Inhalt funktioniert dies gut. Ein Import von Stored Procedures und Triggern ist dagegen nicht möglich, weil nahezu jedes Datenbanksystem eine andere Syntax für SPs verwendet. Ärgerlich ist auch, dass ein Verbindungsaufbau zum Microsoft SQL Server das selten eingesetzte SQL-Server-Authentifizierungsverfahren erfordert: Die Windows-Authentifizierung "alias integrated security" wird nicht unterstützt.

Die genannten Administrationswerkzeuge stammen von den MySQL-Entwicklern und sind wie MySQL selbst kostenlos verfügbar. Für Enterprise-Kunden bietet die MySQL Workbench noch einige Zusatzfunktionen. Diese Zielgruppe kann auch den neuen Enterprise Monitor einsetzen, um den Status eines oder mehrerer MySQL-Server zu verfolgen und nach Optimierungsmöglichkeiten zu suchen.

MySQL bietet die Datenbank nach dem Dual-Licensing-Prinzip an: Neben der GPL-Version existiert eine kostenpflichtige Variante für kommerzielle Anwendungen, die den Anwender nicht zur Einhaltung der GPL-Pflichten, speziell zur Offenlegung eigener Weiterentwickkungen, verpflichtet. Im Herbst 2006 ging MySQL noch einen Schritt weiter: Für die GPL-Version (Community Edition) stellt MySQL nur noch im Halbjahrestakt kompilierte MySQL-Installationspakete zur Verfügung. Abonnenten der kostenpflichtigen Enterprise-Version erhalten dagegen nicht nur Support und den Enterprise Monitor, sondern auch monatliche Updates. Bei MySQL 5.0 hinkte die Community Edition oft weit hinter der aktuellen Version der Enterprise Edition her.

Diese Vorgehensweise entspricht durchaus den Regeln der GPL: Einerseits steht der tagesaktuelle Source-Code via Bazaar zur Verfügung, andererseits werden kommerzielle Kunden nicht daran gehindert, die gerade aktuelle Enterprise-Version weiterzugeben.

Dennoch sind viele Open-Source-Anwender verärgert über diese Strategie. Wer als Anwender der Community Edition in Form von Fehlerberichten, Patches und so weiter zur Entwicklung von MySQL beiträgt, erntet die Früchte dieser Arbeit später als Enterprise-Kunden. Auch bei sicherheitskritischen Updates ist die lange Wartezeit auf die jeweils nächste Community Edition unbefriedigend.

Nicht einmal für die zahlenden Kunden ist die Situation wirklich ideal, da die Enterprise-Version von einer wesentlich kleineren Anwendergruppe genutzt und getestet wird, sodass es länger dauern kann, bis Fehler entdeckt und behoben sind. Andere Anbieter, die ihre Produkte in einer freien Community- und einer kostenpflichtigen Enterprise-Version anbieten, verfolgen eher die umgekehrte Strategie, beispielsweise Red Hat: Die hochaktuelle Fedora-Distribution ist kostenlos verfügbar, Red Hat Enterprise Linux hingegen setzt auf Stabilität und lange Release-Zeiträume.

Immerhin ist MySQL nach der Übernahme durch Sun im Januar 2008 für eine Milliarde US-Dollar von der Idee abgekommen, einzelne MySQL-Features nur für Enterprise-Kunden anzubieten. So gilt weiterhin: Der gesamte Code des MySQL-Servers untersteht ohne Einschränkungen der GPL. Diese Regel gilt allerdings nicht für externe Zusatzsoftware wie dem Enterprise Monitor.

Lange vor der Fertigstellung von MySQL 5.1 machte MySQL im April 2007 die erste öffentliche Testversion von MySQL 6 verfügbar – freilich noch ohne Terminplan. Die beiden wichtigsten Neuerung in MySQL 6 werden die transaktionsfähigen Tabellentypen Falcon und Maria sein. Falcon ist besonders für den Einsatz auf Rechnern mit viel RAM und vielen CPUs optimiert. Allerdings hat Jim Starkey, der wichtigste Falcon-Entwickler, MySQL im Juni 2008 verlassen. Maria wiederum ist eher für große Datenbanken optimiert und soll längerfristig den MyISAM-Tabellentyp ersetzen.

Falcon und Maria sind die (späte) Antwort MySQLs auf den Kauf der Firma Innobase durch Oracle. Deren Datenbank-Engine InnoDB wird wegen ihrer Transaktionsunterstützung und der hohen Geschwindigkeit von vielen MySQL-Anwendern bevorzugt. Obwohl InnoDB weiterhin GPL-konform weiterentwickelt wird und lediglich das externe Hot-Backup-Programm kostenpflichtig ist, belastet die Abhängigkeit von Oracle das Vertrauen in die längerfristige Zukunft des InnoDB-Tabellentyps. Ob und wann einer der beiden neuen Tabellentypen InnoDB das Wasser reichen kann, muss sich allerdings noch zeigen.

Etwas verblüffend ist der Umstand, dass einige langjährige Defizite von MySQL auch für Version 6 nicht auf der Agenda stehen. Dazu zählen unter anderem Debugging-Funktionen für Stored Procedures, Foreign-Key-Regeln (die momentan nur InnoDB-spezifisch implementiert sind) sowie Backups im laufenden Betrieb (Hot-Backups), die momentan nur ein kostenpflichtiges InnoDB-Addon bietet.

Eine Liste interner Mängel des MySQL-Servers fasst ein Vortrag des MySQL-Mitgründers Michael ('Monty') Widenius zusammen: schlechte Skalierung ab acht CPUs/Cores, nicht optimale RAM-Nutzung, keine externe Benutzerauthentifizierung (etwa via LDAP), ineffizienter interner SQL-Parser, mangelnde Community-Beteiligung, unklare Release-Politik und so weiter. Der Vortrag verblüfft in seiner Ehrlichkeit, macht aber auch deutlich, wie viel Arbeit MySQL noch vor sich hat. Das legt den Schluss nahe, dass wir auf MySQL 6.0 wohl noch einige Zeit warten müssen.

Bis es soweit ist, sorgt das Projekt Drizzle für frischen Wind. Dabei handelt es sich um einen minimalistischer MySQL-Fork auf der Basis von Version 6.0. Aus dem Code wurden viele Erweiterungen der letzten Jahre wieder entfernt, darunter Views, Stored Procedures, Trigger sowie diverse exotische Tabellentypen. Auch die Windows-Version ist dem Aufräumeifer zum Opfer gefallen. Das Ziel ist einerseits eine Art MySQL Lite (GPL-only, also ohne kommerzielle Variante), andererseits ein sauberer, aufgeräumter Code. An Drizzle arbeiten neben vielen MySQL-Fans auch MySQL-Angestellte mit – und zwar mit dem offiziellen Segen von Sun.

Typische LAMP-Entwickler, die mit kleinen bis mittelgroßen Websites zu tun haben, werden vom Sprung auf Version 5.1 kaum profitieren. Da stellt sich schon eher die Frage, ob das ehemals schlanke Datenbanksystem nicht schon mit zu viel Overhead überfrachtet ist und vielleicht auch SQLite (oder irgendwann Drizzle) ausreichen würde.

Wesentlich positiver wird das Urteil großer, kommerzieller Kunden ausfallen: Für diese Zielgruppe sind die Neuerungen in MySQL 5.1 attraktiv und versprechen mehr Effizienz – umso mehr, je größer die Datenbank ist. MySQL bietet zwar nach wie vor weniger Funktionen als Oracle, SQL Server und Co., punktet dafür aber mit hoher Geschwindigkeit und einem nicht zu übertreffenden Preis-/Leistungsverhältnis.

Abzuwarten bleibt, ob die scharfe Trennung zwischen Community und Enterprise Edition langfristig zielführend ist: MySQL vergällt damit vielen Open-Source-Fans die Lust an der Mitarbeit. (odi) (odi)