Vergleich: Open-Source-Datenbanken

09.06.2004
Von 
Jan Schulze ist freier Autor in Erding bei München.
Grafik: IBM
Grafik: IBM

Nicht wenige Anwender verbinden das mit dem Vorurteil, MySQL unterstütze grundsätzlich keine Transaktionen. Bis vor einiger Zeit war die Datenbank zwar wirklich nicht dazu in der Lage, mit der Version 4.0 wurde dieses Manko auf eine recht ungewöhnliche Weise behoben: Eine Besonderheit dieser Datenbank ist, dass sie mit unterschiedlichen Speicher-Engines arbeiten kann. Im Regelfall wird MySQL mit der MyISAM-Engine (ISAM = Indexed Sequential Access Method) eingesetzt. Diese bietet die beste Leistung für transaktionslose Zugriffe, wie sie für eine Web-Datenbank notwendig sind: In MyISAM-Tabellen können zum Beispiel Zeilen eingefügt werden, während gleichzeitig andere Threads Daten aus dieser Tabelle lesen. Zudem lassen sich Daten in MyISAM als Typ "Text" deklarieren und dann mittels Volltextsuche indexieren, was schnellere Zugriffe auf die Daten erlaubt.

Wo Licht ist, ist jedoch auch Schatten: Die hohe Geschwindigkeit der MyISAM-Engine erkaufen sich Anwender unter anderem durch fehlende Rollback-Funktionen. Somit kann die Datenbank zumindest theoretisch nach einem Server-Absturz in einen undefinierten Zustand gelangen und die Datenkonsistenz eventuell nicht mehr gewährleistet sein. Da mit MyISAM jedoch normalerweise auf kleine Datensätze zugegriffen wird, ist diese Gefahr sehr gering. Im Mission-critical-Betrieb sollte dieses Risiko aber nicht eingegangen werden.

Daneben kann MySQL im aktuellen Stable-Release 4.0 aber auch mit der integrierten InnoDB-Engine arbeiten, die wesentlich bessere Features zur Konsistenzsicherung enthält. Sie erlaubt unter anderem Transaktionen, allerdings auf Kosten der Geschwindigkeit. InnoDB unterstützt wie MaxDB den Typ "Text" nicht und beherrscht somit auch keine Volltextindexierung. Beide Tabellentypen können zudem parallel innerhalb einer MySQL-Datenbank genutzt werden.

Wer eine rein transaktionsbasierende Datenbank benötigt, ist mit MaxDB besser bedient. Dies ist typischerweise im ERP-Umfeld unverzichtbar. Da MaxDB aus der SAP DB hervorgegangen ist, liegt deren Eignung für den unternehmenskritischen ERP-Einsatz auf der Hand. "Die MaxDB ist so aufgebaut, dass sie nie in einen undefinierten Zustand fällt und die Datenkonsistenz jederzeit gesichert ist", erläutert Jörg Hoffmeister, Development Manager MaxDB Platforms and Support der SAP-Entwicklung in Berlin. Schließlich wurde die Datenbank speziell für den Einsatz in SAP-Umgebungen entwickelt und im Lauf der Jahre optimiert.