Populäres, relationales und international weit verbreitetes Datenbanksystem. Durch die Kompatibilität mit den verschiedensten Betriebssystemen und der, neben der kommerziellen Version verfügbaren Open-Source-Software, rangiert MySQL weltweit an oberster Stelle potenziell einsetzbarer Datenbanksysteme. Der Name setzt sich aus der Kombination aus My, dem Vornamen der Tochter des Erfinders, sowie der Datenbanksprache SQL zusammen.
Entstehung und Entwicklung
MySQL wurde im Zeitraum von 1994 bis zum eventuellen Release im Jahr 1997 von Michael Widenius und David Axmark entworfen und entwickelt. Ziel war es ursprünglich, UNIREG (einem maskengesteuerten Datenbanksystem welches bereits 1979 bzw. 1986 von Widenius entwickelt wurde) in Web-Anwendungen implementieren zu können, was mit dem bereits existierenden Mini-SQL alleine nicht möglich war.
Zum Zeitpunkt des öffentlichen Release im Jahr 1997 hatte es zwei Jahre zuvor schon ein sogenanntes internes Release gegeben, um MySQL grundlegend zu testen und Fehler vor Veröffentlichung der Software korrigieren zu können. Deutlich wurde dies durch die Kennung der ersten, frei zugänglichen Version, welche die Nummer 3.1 trug. Damit sollte vermittelt werden, dass die Programmierung der Software auf einer soliden und historisch bekannten Basis beruht. MySQL 3.1 konnte zwar von Anfang an große Datenmengen verarbeiten, stellte jedoch nur wenige Funktionen zur Verfügung. So waren beispielsweise keine Transaktionen erlaubt. Das änderte sich erst mit dem Release der 3.23er Version, welche neben den besagten Transaktionen auch weitere Tabellentypen enthielt. Eine weitere wichtige Neuerung unter 3.23 war die Einführung des Replikationssystems. Mit den weiteren Releases der Versionen 4.0 – 5.5 wurden sukzessive kleine Änderungen und Verbesserungen freigegeben. Dazu gehörten unter anderem die Zulassung von Subqueries, Unicodes und Triggern. Die aktuelle Version ist MySQL 5.6 und wurde im Jahr 2012 veröffentlicht.
Eine Abfrage unter MySQL
Grundsätzlich besteht das System aus zwei Teilen: Dem zugrunde liegenden MySQL – Server und einem oder mehreren Clients, über die Abfragen an den Server weiter geleitet werden, die dieser dann beantwortet. Ein einziger MySQL – Server kann dabei mehrere Datenbanken verwalten. Dafür legt der Server für jede Datenbank einen eigenen Ordner an, in welchem die jeweilige Datenstruktur gespeichert ist.
Die Struktur besteht wiederum aus einzelnen Tabellen, welche die tatsächlichen Daten beinhalten. Typ und Formatierung der Tabellen hängen dabei nur von dem jeweiligen Speichermedium ab, die maximale Größe wird nur durch das Betriebssystem beschränkt.
Wird nun über einen Client eine Anfrage an den MySQL – Server geschickt, befragt dieser zunächst die Query-Cache. Dieser Schritt ist vor allem für die Performance der Datenbank wichtig. Denn MySQL legt jedes Ergebnis einer Anfrage auch in den Query-Cache ab. Ändert sich das Ergebnis der Anfrage bzw. die zu Grunde liegenden Daten nicht, werden gleiche Antworten aus eben dieser Query beantwortet. Dadurch wird eine unnötige Auslastung des Servers durch sich wiederholende Anfragen mit gleichem Ergebnis verhindert. Andere Anfragen können mit mehr Serverleistung bearbeitet werden.
Wird nun eine Abfrage an den Server gestellt, zerlegt dieser den Befehl in seine einzelnen Komponenten und prüft sie sowohl individuell, als auch in der Syntax auf ihre Richtigkeit. Gleichzeitig identifiziert der Server die Art der Anfrage (SET / SELECT / GRANT / INSERT) und den Tabellenbezug, in dem die Daten zu finden sind (WHERE). Dadurch erkennt MySQL den Syntaxbaum der Anfrage und kann ihn gegebenenfalls optimieren. Sind die Komponenten als auch die Syntax der Anfrage als richtig identifiziert worden, beginnt MySQL mit der Optimierung. Dafür benutzt MySQL einen Anfrageoptimierer, der nach dem effizientesten Weg sucht, eine Query zu bearbeiten. Prinzipiell ist er darauf ausgerichtet, möglichst wenig Datensätze zu durchsuchen. Müssen bei einer Anfrage Daten aus mehreren Tabellen ausgelesen werden, versucht MySQL durch eine intelligente Abfragereihenfolge den Prozess zu verschlanken. Sind in der Abfrage Tabellen enthalten, die für das Abfrageergebnis irrelevant sind, entfernt MySQL diese eigenständig aus der Suche. Alle noch übrigen Möglichkeiten werden daraufhin vom Optimizer bewertet und die schnellste ausgeführt.
Engines
MySQL bietet eigene, speziell für einen bestimmten Einsatz optimierte Engines an, lässt aber auch den Einsatz vom Nutzer eigens programmierter Engines sowie die fremder Hersteller zu. Diese funktionieren unter MySQL allerdings nicht als klassische Speichersubsysteme, sondern unterstützen je nach Programmierung bestimmte Teilgebiete und Funktionen. Beispiele für bekannte Engines sind unter anderem MyISAM, InnoDB, ARCHIVE oder BLACKHOLE. MyISAM konzentriert sich beispielsweise auf die Handhabung von READ und WRITE-Locks. Multiple Nutzer können lesend auf einen Datensatz (Read-Lock) zugreifen. Änderungen durch einen Writer sind aber erst möglich, nachdem alle Reader ihren Zugriff beendet haben (Write-Lock). InnoDB widmet sich der Transaktionssicherung von Queries durch Commit-Beginn und Rollback-Funktionen. Ziel ist es, ein oder mehrere Queries entweder komplett oder gar nicht auszuführen. Dadurch wird bei ausgeführten Queries deren Korrektheit sichergestellt, sowie die Performance verbessert.
Öffentliche Rezeption
MySQL wurde ursprünglich als Open-Source-Programm konzipiert und veröffentlicht. Nutzern war es dadurch möglich, Verbesserungsvorschläge zu unterbreiten und aktiv an der Weiterentwicklung mitzuwirken. Zusätzlich war die grundlegende Funktionsweise der Software von Anfang an überzeugend.
Nach der Übernahme durch Sun Microsystems und deren spätere Eingliederung in den Oracle Konzern ging dieses Miteinander vermehrt verloren. Weiterentwicklungen der Software stehen zunehmend nur noch in der kostenpflichtigen Enterprise-Version zur Verfügung, die Bazaar-Archive sind veraltet und der Support durch die Veröffentlichung von Fehlermeldungen wird weiter eingestellt. Dies hat allgemein für Kritik gesorgt. So warf auch Michael Widenius Oracle vor, MySQL nicht weiter als Open-Source-Software zu unterstützen und an einem Austausch mit der Community kein Interesse zu haben. Auch hätten seinen Informationen zufolge die meisten MySQL-programmierer Oracle bereits verlassen. Open-Source Betriebssysteme wie OpenSuse oder Slackware haben darauf reagiert und ihre MySQL Anwendungen weitestgehend durch MariaDB ersetzt.
Zusammenfassung
MySQL ist ein weitverbreitetes, relationales Datenbanksystem mit Open-Source- und kommerziellen Versionen, das unter diversen Betriebssystemen läuft. Der Name MySQL ist eine Kombination aus „My“, dem Vornamen der Tochter des Mitbegründers Michael Widenius und der Datenbanksprache SQL.
Das System wurde zwischen 1994 und 1997 von Michael Widenius und David Axmark entwickelt, um das ältere UNIREG-Datenbanksystem in Web-Anwendungen integrieren zu können. Seit der ersten Veröffentlichung hat MySQL zahlreiche Updates und Verbesserungen erfahren, einschließlich der Einführung von Transaktionen, Replikationssystemen und anderen erweiterten Funktionen.
MySQL arbeitet auf einer Client-Server-Architektur, in der der Server mehrere Datenbanken verwalten kann. Der Server nutzt einen Query-Cache, um die Performance zu verbessern und unnötige Serverbelastung zu minimieren. Anfragen werden sorgfältig analysiert und optimiert, bevor sie ausgeführt werden.
Das System unterstützt verschiedene Datenbank-Engines wie MyISAM und InnoDB, die für spezifische Anwendungsfälle optimiert sind. Diese Engines haben jeweils eigene Funktionalitäten, etwa für Locking-Mechanismen oder Transaktionssicherheit.
Obwohl MySQL ursprünglich als Open-Source-Projekt gestartet ist, hat sich die öffentliche Rezeption seit der Übernahme durch Oracle geändert. Kritik besteht insbesondere an der eingeschränkten Weiterentwicklung der Open-Source-Version und dem fehlenden Austausch mit der Community. Dies führte dazu, dass viele Open-Source-Projekte zu Alternativen wie MariaDB gewechselt sind.
Häufige Fragen und Antworten
Was ist MySQL?
MySQL ist ein populäres, relationales und international weit verbreitetes Datenbanksystem. Es handelt sich um ein Open-Source-Programm, das unter verschiedenen Betriebssystemen läuft. MySQL bietet eine hohe Kompatibilität und ist potenziell für verschiedene Anwendungsfälle einsetzbar.
Wie entstand und entwickelte sich MySQL?
MySQL wurde von Michael Widenius und David Axmark entwickelt und zwischen 1994 und 1997 weiterentwickelt. Ursprünglich war das Ziel, das ältere UNIREG-Datenbanksystem in Web-Anwendungen integrieren zu können. Seit der ersten Veröffentlichung hat MySQL zahlreiche Updates und Verbesserungen erfahren.
Wie funktioniert eine Abfrage unter MySQL?
MySQL arbeitet auf einer Client-Server-Architektur. Der MySQL-Server verwaltet mehrere Datenbanken und empfängt Anfragen von Clients. Bei einer Anfrage zerlegt der Server den Befehl, überprüft die Syntax und optimiert die Abfrage. Dabei sucht er nach dem effizientesten Weg, die Anfrage zu bearbeiten und minimiert die Durchsuchung von Datensätzen.
Welche Engines bietet MySQL an?
MySQL bietet eigene Engines wie MyISAM und InnoDB an, die für bestimmte Anwendungsfälle optimiert sind. Es ist auch möglich, eigens programmierter Engines oder Engines von Drittanbietern zu nutzen. Diese Engines unterstützen spezifische Funktionen und Teilgebiete der Datenbankverwaltung.
Wie ist die öffentliche Rezeption von MySQL?
MySQL wurde ursprünglich als Open-Source-Programm entwickelt und veröffentlicht. In der Vergangenheit gab es intensive Zusammenarbeit mit der Community. Nach der Übernahme von Oracle hat sich die Rezeption jedoch geändert. Es gibt Kritik an der eingeschränkten Weiterentwicklung der Open-Source-Version und dem fehlenden Austausch mit der Community. Viele Open-Source-Projekte sind deshalb auf Alternativen wie MariaDB umgestiegen.