25 Jahre freie Datenbank MySQL

Vor einem Vierteljahrhundert waren SQL-fähige Datenbanken teurer Luxus für Unternehmen. Damit hat das freie MySQL Schluss gemacht.

Lesezeit: 3 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 207 Beiträge
Von

Anfang der 90er Jahre des 20. Jahrhunderts kannte man relationale Datenbanken im Wesentlichen aus dem Unternehmensbereich: Oracle, Informix, IBM waren die Platzhirsche, denen Microsoft versuchte, mit seinem SQL Server auf Windows NT Konkurrenz zu machen. Weder kleinere Unternehmen noch Normalsterbliche konnten sich diese Produkte leisten: Eine Informix-Lizenz für einen Rechner konnte schon mal mit 50.000 DM (ca. 25.000 €) zu Buche schlagen. Das freie Postgres existierte zwar auch zu dieser Zeit schon, es setzte jedoch auf eine proprietäre Abfragesprache.

Anfang 1995 erschien mit mSQL eine erste preiswerte relationale Datenbank, die man mit SQL bediente. Sie war jedoch nicht frei und verfügte nur über stark eingeschränkte Fähigkeiten. So fehlten unter anderem die Datentypen VARCHAR, DATE und TIME sowie eine automatische Nummerierung der Datensätze wie sie etwa SEQUENCE ermöglicht.

Am 23. Mai 1995 stellte die schwedische Firma TcX AB eine erste interne Version der relationalen Datenbank MySQL fertig, die dieselbe API wie mSQL benutzte. Kurz danach gründeten die Entwickler Michael „Monty” Widenius, Alan Larsson und David Axmark die Firma MySQL AB, die die weitere
Entwicklung übernahm. Allgemein zugänglich wurde MySQL erstmals 1997 mit der Version 3.1. Sie sollte verdeutlichen, dass es das Datenbanksystem schon einige Zeit gab.

Die MySQL-Entwickler und Gründer der Firma MySLQ AB: David Axmark und Monty Widenius

(Bild: Werner Popken, CC BY-SA 2.5 )

MySQL stand von Anfang an unter der freien GNU General Public License. Das erleichterte Interessierten das Lernen von und Experimentieren mit SQL und trug relativ schnell zu einer großen Verbreitung unter Linux-Anhängern bei. Dort stieß es jedoch auch auf Kritik, vor allem von Postgres-Fans. Diese freie Datenbank hatte inzwischen zu SQL als Abfragesprache umgeschwenkt und diesen Standard wesentlich gründlicher implementiert als MySQL.

Das nahm sich etliche Freiheiten, ob aus Bequemlichkeit der Entwickler oder um die Benutzung zu erleichtern. Es verzichtete zum Beispiel auf strikte Eingabeprüfungen, sodass es etwa das Datum 0000-00-00 wie den 31. Februar 2003 klaglos akzeptierte. Fehlermeldungen erschienen ebenfalls nicht, wenn der Datenbankserver eine Tabellendefinition änderte. Für Kenner anderer Datenbanksysteme besonders lästig waren ausbleibende Fehlermeldungen bei SQL-Konstrukten, die MySQL zwar akzeptierte, aber nicht beachtete – etwa Constraints für Felder.

Kenner relationaler Datenbanken beklagten sich zudem über das Fehlen ihrer Meinung nach wesentlicher Funktionen. Am wichtigsten waren aus ihrer Sicht Transaktionen: Damit sicherten Oracle und Co zusammenhängende Operationen, beispielsweise um das mehrfache Verkaufen desselben Tickets an verschiedene Kunden zu verhindern. Ebenso vermisste man VIEWs, Stored Procedures und Trigger, die Datenbank-Entwicklern das Leben erleichterten. Angesichts dieser Macken und Lücken scheint es erstaunlich, dass MySQL heute seinen 25. Geburtstag feierte und nicht schon vor Jahren sang- und klanglos in der Versenkung verschwunden ist. Ein Grund dafür dürfte allerdings genau darin liegen, dass diese Mängel Datenbank-Neulinge gar nicht interessierten. MySQL ließ sich wie jede Linux-Software mit dem bekannten Vierklang

gunzip; ./configure; make; make install

installieren. Und zumindest anfangs reichte danach ein einfaches mysqld, um es zu starten. Im Betrieb musste man sich um nichts kümmern. Kein VACUUM wie bei Postgres, kein Konfigurieren irgendwelcher Raw-Devices wie bei Oracle – MySQL lief einfach, ließ seine Datenbankdateien bei Bedarf einfach wachsen und wartete auf SQL-Kommandos.

All das senkte die Einstiegshürde für viele, die einfach mal mit einer Datenbank experimentieren wollten. Dazu gehörten auch Entwickler, die etwa für PHP und Perl schon früh MySQL-Schnittstellen schrieben. Dadurch ließ sich die Datenbank für Web-Anwendungen einsetzen, was sich bis heute das Kürzel LAMP (Linux, Apache, MySQL, PHP/Python/Perl) ausdrückt. Dadurch wurde es interessant für andere Projekte, etwa Content Managementsysteme wie Typo 3 oder die Blog-Software Wordpress, die die Datenbank intern nutzen. Facebook setzt heute ebenso auf MySQL wie OBI, die NASA und Uber. Ganz so frei wie früher ist das Produkt jedoch nicht mehr. 2008 verkaufte es MySQL AB für 1 Milliarde US-Dollar an Sun Microsystems, das seinerseits zwei Jahre später von Oracle übernommen wurde. Bis dahin war die Entwicklung kontinuierlich vorangegangen und hatte viele fehlende Funktionen nachgerüstet: SQL-kompatible Daten ließen sich erzwingen, es gab VIEWs, Transaktionen, Volltextsuche, Stored Procedures und Trigger. Hinzugekommen sind zudem nicht-relationale Modelle, etwa zum Speichern von Schlüssel-Wert-Paaren, unstrukturierten Dokumente und JSON-Daten, und bessere OLAP-Unterstützung durch spaltenorientierte Datenablage.

Oracle weckte jedoch zunächst Zweifel an seiner Bereitschaft, MySQL überhaupt weiterzuentwickeln. Zunächst stellte es die Arbeit an der seit Jahren dauernden Entwicklung der neuen Speicher-Engine „Falcon” ein. Dann jedoch steckte Oracle mehr und mehr Energie in das Beseitigen von Engpässen und das Implementieren neuer Funktionen. Von letzteren allerdings landeten viele nur noch in der kommerziellen Version des Servers. Die Fehlerdatenbank, früher allgemein zugänglich, wurde nicht-öffentlich, ebenso kamen die öffentlichen Regressionstests abhanden.

Schon vor der Übernahme Suns durch Oracle hatten „Monty” Widenius und David Axmark in einer neuen Firma einen MySQL-Klon namens MariaDB entwickelt. Er ist weiterhin vollständig frei und wird mittlerweile von der MariaDB-Stiftung betreut. Zwar divergieren MySQL und MariaDB immer mehr, da Oracle und die MariaDB-Entwickler unabhängig voneinander arbeiten. Bis MySQL 7 waren die beiden jedoch noch binärkompatibel, sodass sich zum Beispiel Datenbankdateien direkt zwischen ihnen austauschen ließen. Die großen Linux-Distributionen haben inzwischen aus Lizenzgründen auf MariaDB umgestellt, ebenso die Wikimedia-Foundation und Google. Zumindest an den Suchabfragen lässt sich seit Ende 2017 ein konstant hohes Interesse an MariaDB ablesen, während dieser Indikator bei MySQL heute nur noch weniger als ein Viertel des Höchstwerts von 2004 ausmacht. Zahlen zu den Marktanteilen scheinen wenig verlässlich. So liegt MySQL bei db-engines.com auf dem 2. Rang hinter Oracle, MariaDB auf dem 12. Platz. Datanyze kommt für MySQL auf einen Marktanteil von 15,6 Prozent und für MariaDB auf 0,8 Prozent. Beide Sites betrachten in erster Linie den Einsatz der Datenbanken bei Websites.

Ob MySQL oder MariaDB: Gemeinsam bleibt ihnen, was MySQL schon vor 25 Jahren attraktiv machte: der einfache Einstieg in die Arbeit mit einer echten Datenbank. Die heute den Vergleich mit kommerziellen und freien Konkurrenten nicht mehr zu scheuen braucht. (avr)