|

|
MySQL [ˌmaɪɛskjuːˈɛl] ist ein Relationales Datenbankverwaltungssystem der schwedischen Firma MySQL AB. MySQL ist als Open-Source-Software für verschiedene Betriebssysteme verfügbar und bildet die Grundlage vieler Webauftritte.
MySQL ist eine freie Software, die unter der General Public License (GPL) steht. MySQL kann auch mit einer kommerziellen Lizenz eingesetzt werden. (Duales Lizenzsystem)
Die Herkunft des Namens MySQL kann heute nicht mehr genau rekonstruiert werden. Seit 1996 wurden diverse Bibliotheken und Tools mit dem Präfix My geschrieben. Es wird spekuliert, dass der Name My der Tochter des Mitbegründers Monty Widenius vielleicht auch der Ursprung des Namens MySQL sein könnte.
Neben vielen Unix-Varianten, Mac OS X und Linux läuft MySQL auch auf Windows, OS/2 und i5/OS (ehemals OS/400).
Einer Datenbankmanagementsystem-Engine können mehrere Datenbanken zugeordnet werden. In einer Datenbank können mehrere Tabellen angelegt werden. Die Tabellen können von unterschiedlichem Typ sein. Die maximale Größe der Tabellen wird im Prinzip nur durch das Betriebssystem limitiert.
Während frühere MySQL-Versionen nur Teile des SQL3-Sprachumfangs unterstützten (z. B. keine View-Definitionen möglich), bietet die Version 5.0 einen wesentlich erweiterten Sprachumfang an, der weitgehend dem SQL3-Standard entspricht.
Seit der Version 3.23.xx steht ein Replikationssystem zur Verfügung. Es ist für den Einsatz in einem Computercluster ausgelegt. Dabei sind dem Datenbankmanagementsystem (DBMS) mehrere Datenbanken auf unterschiedlichen Rechner-Knoten zugeordnet. Eine der Datenbanken fungiert als Master. Hier werden Daten-Updates aufgespielt. Das Replikationssystem kopiert die Masterdatenbank auf die anderen Datenbanken.
Ein bevorzugtes Einsatzgebiet von MySQL ist die Datenspeicherung für Web-Services. MySQL wird häufig in Verbindung mit dem Webserver Apache und PHP eingesetzt. Diese Kombination wird entsprechend der Anfangsbuchstaben der beteiligten Software als LAMP, MAMP bzw. WAMP bezeichnet, je nachdem ob als Betriebssystem Linux, Mac OS oder Windows benutzt wird.
Einige Webdienste bedienen sich dieser Architektur. Sie betreiben mehrere hundert MySQL-Server, über die die Zugriffe aus dem Netz abgewickelt werden.
MySQL wird in über hundert Produkten als eingebettetes Datenbanksystem eingesetzt.
MySQL ist 1994 zunächst als Clone für mSQL entwickelt worden und deshalb zu diesem voll kompatibel. Die Software wurde sofort unter der Versionsnummer 3.21 veröffentlicht, um zu signalisieren, dass sie auf einem (von Monty entwickelten) Kern basiert, der schon eine lange Geschichte hat. Sie war von Anfang an für große Datenmengen und sehr gute Performance ausgelegt, teils auf Kosten von Stabilität und Verfügbarkeit.
Die Menge der Eigenschaften hingegen war zunächst beschränkt. So gab es nur wenige Tabellentypen und keine Transaktionen. Typischerweise werden neue Eigenschaften auf Wunsch der Anwender implementiert, die dadurch ein sehr großes „Mitspracherecht“ haben.
Bereits mit der Version 3.23 verfügte MySQL über zwei Tabellentypen mit Transaktionen, wobei der eine (InnoDB) den Kriterien ACID genügt.
Alle Operationen, die allgemeine SQL-Eigenschaften betreffen, sind für alle Tabellentypen gleich, während die Eigenschaften der Tabellentypen aufgrund der unterschiedlichen Architektur sehr verschieden sein können. So besitzt der Typ MyISAM bereits seit der frühen Version 3.23 eine sehr leistungsfähige Volltext-Suche, die beim Typ InnoDB (noch) nicht implementiert ist.
Mit dem MySQL-Cluster steht außerdem ein Tabellentyp zur Verfügung, bei dem die gesamte Datenbank im Arbeitsspeicher vorgehalten wird. Im Gegenzug unterstützt dieser Datentyp vollständige Replikation zwischen allen Clusterknoten und ebenfalls Transaktionen, aber wiederum keine Volltextsuche.
Die Version 4.1 wurde im Oktober 2004 freigegeben. Sie bietet eine Datenspeicherung in unterschiedlichen Zeichensätzen pro Tabelle an. Es wird unter anderem auch Unicode unterstützt.
Weitere Verbesserungen gegenüber der Version 3.x sind die Funktionen Union und Subquery.
Die Version 5.1 kann Tabellen partitionieren, ein Plugin-API haben, eine zeilenbasierte Replikation und eine Ereignissteuerung ähnlich der Cronjobs unter UNIX. Die Version 5.1 befindet sich noch in Entwicklung (Stand: März 2007). Es stehen noch nicht alle angekündigten Funktionen zur Verfügung.
Eine Version 5.2 wird als Download für einen Alpha-Test angeboten (Stand: März 2007). Für diese Version ist eine umfassendere Unterstützung der Fremdschlüssel-Beziehungen angekündigt.
In diesem Abschnitt werden einige Einschränkungen der aktuellen Version beschrieben. Wenn zukünftige Release bereitgestellt werden, dann kann es sein, dass einige dieser Einschränkungen wegfallen.
Die hier beschriebenen Einschränkungen betreffen die Version 5.0.
* VARCHAR-Spalten können maximal die Länge 255 haben.
* Datenzeilen (mit Ausnahme vom BLOB- und TEXT-Daten) dürfen nicht größer als 8 KB sein.
* Die Beachtung von Fremdschlüssel-Beziehungen wird noch nicht von allen Speicher-Engines ausgeführt. (Die Limitierung soll mit der Version 5.2 aufgehoben werden)
* Der Umgang mit Null-Werten ist nicht immer korrekt. Wenn Default-Werte für Spalten definiert sind und bei einem Insert Null-Werte eingefügt werden, dann werden die Default-Werte für den zu speichernden Datensatz übernommen.
zurück
|