Zum Inhalt springen

SEO Analyse » SEO Lexikon » m » MySQL

MySQL Begriffserklärung und Definition

MySQLPopulä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.

Bildnachweis: iStock.com/vonotna


Zurück zur Hauptseite: m
Alle Marken, Warenzeichen, Unternehmens- und Produkt-Bezeichnungen sind mit, aber auch ohne definitive Kennzeichnung, Eigentum des Inhabers der Rechte. Alle aufgeführten Elemente dienen lediglich der informativen Beschreibung.