[linux-l] Vorbehalte gegen MySQL (was: MySQL PostgreSqL Drupal)
Volker Grabsch
vog at notjusthosting.com
Fr Dez 28 01:57:00 CET 2007
On Thu, Dec 27, 2007 at 02:05:04PM +0100, Michael Sucha wrote:
> Und seit wann ist MySQL keine *richtige* Datenbank?
Besser wäre die Frage: Seit wann ist MySQL eine richtige DB? ;-)
Im Ernst: Muss man das wirklich erklären? Olafs Bemerkung ist sicher
provokant, aber es ist nicht lange her, da war das eine ernstzunehmende
Kritik.
Inzwischen hat MySQL endlich auch Transaktions-Unterstützung. Solange
es das nicht hatte, war es keine /richtige/ Datenbank. Ein SQL-Interpreter
mit Mehrbenutzerzugriff verdient noch nicht den Titel "Datenbank".
Inzwischen ist MySQL zu einer Datenbank geworden, wird aber dennoch
von vielen Datenbanklern abgelehnt. Die mir bekannten Gründe fasse ich
mal zusamen. Dabei beschränke ich mich auf gängige /Eindrücke/. Sollten
einige davon falsch sein, bitte ich um Korrektur:
1) Fehlende Features und Langsamkeit
------------------------------------
Obwohl endlich Sub-SELECTs unterstützt werden, beherrscht MySQL
nach wie vor nur einen kleinen Teil von SQL.
Sub-SELECTs und Transaktionssicherheit sorgen für heftige Performance-
Einbrüche. Genauso die Verwendung und Verknüpfung von sehr vielen
Tabellen.
Das ist natürlich nur bei richtig großen Projekten von Bedeutung,
zeigt aber, dass MySQL eher für kleine Datenmengen bzw. einfache
Datenschemas geeignet ist.[1] In diese Nische ist aber auch
PostgreSQL längst vorgedrungen.
2) Entwicklungsgeschichte
-------------------------
In PostgreSQL wurde zuerst Wert darauf gelegt, möglichst viel vom
SQL-Standard umzusetzen, mit Transaktionen und allem Drum und Dran.
Erst später wurde die Geschwindigkeit erhöht. MySQL ging den
umgekehrten Weg, was auf Außenstehende den Eindruck von verfrühter
Optimierung macht.
Der Eindruck wird dadurch verstärkt, dass MySQL-Backends /mit/
Transaktionsunterstützung deutlich langsamer sind.
3) Politische Gründe
--------------------
PostgreSQL ist ein freies Projekt, MySQL wird von einer Firma
vermarktet. Der Umgang mit Kontributoren spricht klar für
PostgreSQL, wie Olaf Radicke vor längerer Zeit schon berichtete.
Das spiegelt sich auch in den Lizenzen wider (BSD-Lizenz vs.
GPL + prop. Lizenz).
Auch viele unseriöse Benchmarks erwecken den Eindruck, dass
MySQL vorallem durch gutes Marketing, nicht durch Qualität,
eine so weite Verbreitung hat. Das merkte man besonders gut an
dem Aufschrei um den ersten Benchmark, der "PostgreSQL schneller
als MySQL" diagnostizierte.
4) Verbreitung durch Hostinganbieter
------------------------------------
MySQL war lange Zeit /die/ Datenbank für PHP-Webapplikationen
schlechthin. Das Schlagwort LAMP kommt noch aus dieser Zeit.
Selbst heute bekommt man preiswertes Webhosting vorrangig mit MySQL.
PHP hatte viel lange Zeit keine guten DB-Abstraktionslayer wie
Perl:DBI oder Java/JDBC. So waren die meisten Webapplikationen
unnötigerweise MySQL-spezifisch. Das wurde zur selbsterfüllenden
Prophezeihung:
die meisten Webapps sind MySQL-spezifisch
-> höhere Nachfrage für MySQL-Webhosting
-> MySQL-Webhosting preiswerter als PostgreSQL-Webhosting
-> Neulinge kommen zuerst mit MySQL in Berührung
-> die meisten Webapps sind MySQL-spezifisch
Wichtig ist, dass gutes MySQL-Marketing diesen Kreislauf in Gang
gebracht hat: "weniger Features, aber dafür robuster und schneller".
Obwohl das so nicht mehr stimmt, existiert dieser Kreislauf weiter.
Von sowas distanziert man sich natürlich.
(Mit dem neuen RubyOnRails-Hype wird dieser Kreislauf zunehmens
durchbrochen: Ein neuer Markt bedroht die PHP-MySQL-Monokultur.
DB-Abstraktion wird modern.)
Gruß,
Volker
[1] Unser Datenbanken-Professor nennt das auch "Mickey-Maus-Anwendungen".
--
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR
Mehr Informationen über die Mailingliste linux-l