MySQL
MySQL [SQL-Datenbankverwaltungssystem der schwedischen Firma MySQL AB. MySQL ist als Open-Source-Software für verschiedene Betriebssysteme verfügbar und bietet damit die Grundlage vieler Webauftritte.
] ist einBeschreibung
MySQL ist eine freie Software und steht seit einiger Zeit unter der GPL und einer kommerziellen Lizenz (Duales Lizenzsystem) zur Verfügung. Es gehört zu den am weitesten verbreiteten Open-Source-Programmen.
Neben den meisten Unix-Varianten, Mac OS X und Linux läuft MySQL auch auf Windows und OS/2 (nur Version 3.x) und vielen weiteren Betriebssystemen. MySQL wird sehr häufig zusammen mit dem Webserver Apache und PHP eingesetzt (diese Kombination wird oft als LAMP bzw. WAMP bezeichnet), wird aber auch in vielen kommerziellen Anwendungen verwendet; dann in der Regel unter der kommerziellen Lizenz, auch in der Variante als embedded Server.
MySQL bietet eine im Bereich der DBMS einzigartige Möglichkeit: es erlaubt die Verwendung von verschiedenen Tabellentypen (Engines, zum Beispiel MyISAM, InnoDB, Berkeley DB, Memory, NDB und weitere); man kann sogar seine eigene Engine einbinden. Die einzelnen Tabellentypen bieten unterschiedliche Möglichkeiten: mit und ohne Transaktionen, mit und ohne permanenter Speicherung, mit und ohne Stored Procedures, mit synchroner oder asynchroner Replikation usw.
MySQL unterstützt beliebig viele Datenbanken; in jeder Datenbank beliebig viele Tabellen beliebiger Größe – die Beliebigkeit ist nur vom Betriebssystem beschränkt. Die Tabellen in einer Datenbank können vom Typ her beliebig gemischt sein, Anfragen können sich auf Tabellen unterschiedlichen Typs und unterschiedlicher Datenbanken beziehen, sogar auf verschiedenen Maschinen.
Die Möglichkeit, unterschiedliche Tabellentypen beliebig zu verwenden, macht MySQL zu einem vielseitigen RDBMS, das sich hervorragend an das jeweilige Anforderungsprofil anpassen kann. Besonderer Beliebtheit erfreut sich MySQL im Bereich von Webservern, da es hier in der Regel unter der freien Lizenz eingesetzt werden kann, was insbesondere für Provider verlockend ist.
Das robuste Replikationssystem, das seit der frühen Version 3.23.xx entwickelt wird, ermöglicht eine extreme Skalierung. Bekannte Webdienste setzen auf diese Weise Hunderte von MySQL-Servern ein und können damit (in Verbindung mit anderen Techniken, zum Beispiel Squid als reverse Proxy) beliebige Lasten bedienen.
Geschichte
MySQL ist 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 sehr lange Geschichte hat. Sie war von Anfang an für große Datenmengen, hohe Verfügbarkeit, extreme Stabilität und sehr gute Performance ausgelegt.
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, was zum Beispiel zwar für Oracle, aber nicht für den Microsoft SQL-Server zutrifft und deshalb viele Anwender, die das Microsoft-System kennen, verwirrt hat (speziell consistent reads).
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.
Die Version 5 der MySQL bietet Stored Procedures und Trigger. Die Version 4.1 ist ebenfalls Produktionsversion und bietet unter anderem Support für Unicode.
Administration
Zur Verwaltung von MySQL-Datenbanken dient der mitgelieferte Kommandozeilen-Client (Kommandos mysql
und mysqladmin
).
Eine weit verbreitete Alternative ist die in der Skriptsprache PHP geschriebene Open-Source-Anwendung phpMyAdmin. Die grafische Benutzeroberfläche lässt sich komplett über einen Browser bedienen. Man kann damit beliebig viele Datenbanken auf beliebig vielen Maschinen von jedem beliebigen Arbeitsplatz verwalten. Alternativ hierzu kann bei lokalen Datenbanken auch das Gespann von MySQL Administrator und MySQL Query Browser von MySQL AB verwendet werden.
Zum Erstellen von Sicherungskopien der Datenbestände eignet sich, falls man keine Möglichkeit zur Verwendung von Cron-Jobs hat, besonders phpMyBackupPro. Mit der ebenfalls in PHP geschriebenen und somit vom Betriebssystem unabhängigen Open-Source-Anwendung lassen sich Cronjobs sowie Pseudo-Cronjobs erstellen, über die MySQL-Datenbanken (auch per E-Mail) in regelmäßigen Zeitabständen gesichert werden können.
Für ein unterbrechungsfreies System bietet sich die Master/Slave-Replikation an, wobei die Datensicherung auf dem Slave durchgeführt wird.
Literatur
- Matthias Kannengießer: PHP 5 / MySQL 4, Studienausgabe. Franzis Verlag, ISBN 3-7723-7005-5
- Axel Bornträger: MYSQL 4 – echt einfach. Franzis 2004 ISBN 3-7723-6137-4
- Michael Kofler: MySQL. Einführung, Programmierung, Referenz. Programmer's Choice. 3., überarb. u. erw. Aufl. 2005 ISBN 3-8273-2253-7
- Matthias Kannengießer: MYSQL – Praxisbuch. Franzis 2003 ISBN 3-7723-7500-6
- Michael Rüttger: MySQL für Dummies. mitp-Verlag 2002 ISBN 3-8266-3022-X
- George Reese, Randy Jay Yarger, Tim King: MySQL: Einsatz und Programmierung O'Reilly 2002 ISBN 3-89721-178-5
- Joachim Busch: Internet- und Mail-Server für Windows-Systeme mit MySQL Engelsdorfer Verlag 2006 ISBN 3-939404-55-1
Siehe auch
Weblinks
- Offizielle Website (MySQL International)
- Offizielle deutsche Website (MySQL Deutschland)
- MySQL-Referenzhandbuch
- MySQL-Referenzhandbuch, veraltet in Deutsch
- MySQL-Admin, mehrsprachige Webadministrationsoberfläche für MySQL-Datenbanken
- MySQL-Tutorial Deutsche MySQL - Einführung
- phpmyadmin Webadministrations-Oberfläche für MySQL