Zum Inhalt springen

MySQL

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 1. Mai 2006 um 20:22 Uhr durch Spawn Avatar (Diskussion | Beiträge) (Weblinks: Link zur neuen Community-Webseite ergänzt, Quelle: [http://www.heise.de/newsticker/meldung/72563 Heise-Online-Artikel]). Sie kann sich erheblich von der aktuellen Version unterscheiden.

MySQL [ˌmaɪɛskjuːˈɛl] ist ein 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.

Beschreibung

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 (allerdings kann trotzdem nur in die Masterdatenbank geschrieben werden, während von den replizierten MySQL-Servern nur gelesen werden kann). Bekannte Webdienste setzen auf diese Weise Hunderte von MySQL-Servern ein und können damit u.U. (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.

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 wiederrum keine Volltextsuche

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

Siehe auch