Über unsMediaKontaktImpressum
Jan Schulze 26. Juli 2016

MariaDB und MySQL – Die kleine Schwester überholt

Die Open Source-Datenbank MariaDB hat in vielen Bereichen den Platzhirsch MySQL abgelöst. Dafür gibt es gute Gründe, die zum einen auf technologischen Merkmalen, zum anderen im Umgang des MySQL-Herstellers Oracle mit den Open Source-Gepflogenheiten zu suchen sind. Zudem liegt die Hemmschwelle für einen Wechsel extrem niedrig, da beide Datenbank-Management-Systeme eng miteinander verwandt sind.

"Es war einmal ein Mann, der hatte zwei Töchter." So ähnlich könnte ein Märchen beginnen, das die Geschichte von MySQL und MariaDB erzählt. Beide Datenbanken wurden von Michael "Monty" Widenius ins Leben gerufen. MySQL hat sich seit den ersten Entwicklungsschritten 1994 zu einer zentralen Stütze des Internets und der Open Source-Welt entwickelt. Der Name setzt sich zusammen aus My – dem Namen von Widenius‘ ältester Tochter – und SQL, der Structured Query Language für Datenbankoperationen. Heute gehört MySQL zu Oracle, während Widenius sich seit 2009 dem MySQL-Fork MariaDB widmet. Maria ist zudem der Name der zweiten Tochter des Entwicklers.

Inzwischen hat die kleine Schwester Maria, die große Schwester My in vielen Bereichen überholt. Spätestens seit Wikipedia vor einigen Jahren von MySQL auf MariaDB migrierte, ist klar, dass auch MariaDB in großen Datenbanklandschaften einsatztauglich ist. Auch innerhalb der Open Source-Community ist inzwischen MariaDB häufig die Standard-Datenbank. Für diese Entwicklung sind primär zwei Gründe ausschlaggebend: Zum einen steht das etwas zurückhaltende Engagement im Open Source-Bereich von Oracle seit geraumer Zeit in der Kritik. Das Verhalten des Datenbank-Riesen stößt vielen Menschen in der Open Source-Community sauer auf und verursacht auch bei zahlreichen Unternehmen eine gewisse Unsicherheit. Zum anderen hat MariaDB die große Schwester technologisch in vielen Bereichen überholt und verfügt über Merkmale, die vor allem für den Umgang mit unternehmenskritischen Daten unverzichtbar sind – und von denen einige MySQL nach wie vor fehlen.

Modulare Architektur

Denn es ist streng genommen nicht mehr korrekt, MariaDB als reinen MySQL-Fork zu betrachten. Die MariaDB-Entwickler waren nicht untätig und haben sehr viele Ideen in die Datenbank eingebracht. Das betrifft weniger den so genannten "War of Features", bei dem sich Hersteller ständig gegenseitig mit neuen Funktionen übertrumpfen wollen, wie Nishant Vyas, Head of Products and Strategy bei MariaDB, erläutert: "Jedes Datenbanksystem bekommt ständig neue Funktionen, die Hersteller rennen immer hintereinander her." Der Fokus bei MariaDB liege vielmehr auf der universellen Einsatzbarkeit: "MariaDB funktioniert mit jedem Datentyp." Entsprechend vielseitig präsentiert sich MariaDB: Die Datenbank verfügt über eine breite und ständig wachsende Palette an Speicher-Engines und übertrifft in diesem Bereich MySQL bei Weitem. Diese sind jeweils für bestimmte Einsatzszenarien konzipiert – InnoDB für Transaktionen, Spider mit integrierten Sharding-Funktionen oder ColumnStore für massive parallele Architekturen und mit einem spaltenbasierten Modell. "Wir verfolgen die Strategie, dass es für jeden Anwendungsfall eine optimale Speicher-Engine gibt", erklärt Vyas. Dementsprechend erscheinen fortlaufend neue Engines, die MariaDB für neue Einsatzszenarien optimieren. Oder auch Generalisten wie die Connect-Engine, über die so gut wie jedes andere Datenbanksystem mit MariaDB kommunizieren kann.

Sicherheit und Verfügbarkeit

Neben der Optimierung für verschiedene Anwendungsbereiche, spielt die Sicherheit der "Data at rest", der gespeicherten Daten, eine zentrale Rolle bei der Entwicklung. Geistiges Eigentum, personenbezogene Daten und viele weitere Informationen müssen vor dem unbefugten Zugriff Dritter gesichert werden. MariaDB hat deswegen mit Version 10.1 die Möglichkeit zur Verschlüsselung von Daten auf Storage-Ebene eingeführt. Dabei können ganze Table-Spaces, aber auch nur einzelne Tabellen sowie verschiedenste Log-Dateien verschlüsselt werden. Die Daten sind dabei nicht nur in den Dateien der Speicher-Engine vor Zugriffen geschützt, sondern auch in den für die Replikation wichtigen Binär-Logs. Des Weiteren ermöglicht MariaDB so genannte "Rolling Encryption Keys": Alle Schlüssel haben nur eine begrenzte Gültigkeit und werden turnusmäßig durch neue ersetzt. Zwar hat auch MySQL begonnen sich diesem wichtigen Thema anzunehmen, doch noch immer fehlen einige wichtige Merkmale als native Implementierung. Die eingesetzten Verschlüsselungstechnologien stammen laut Vyas von Google und vom Darmstädter Verschlüsselungsunternehmen Eperi: "Viele Leistungsmerkmale bei MariaDB sind Beiträge der Community", so der MariaDB-Manager.

Ebenfalls wichtig für den Einsatz in Unternehmen, ist die Zugriffskontrolle auf Basis der Rolle. Mit der Role-based Access Control hat MariaDB hier eine deutliche Vereinfachung bei der Verwaltung der Zugriffsrechte implementiert. Dieses Vorgehen ist zwar nicht prinzipiell neu, jedoch als native Implementierung bei Datenbank-Management-Systemen bislang leider selten zu finden. Im Kern geht es darum, dass Zugriffsrechte nicht nur klassisch auf der Basis einzelner Benutzer und Benutzergruppen vergeben werden, sondern auch anhand einmal definierter Rollen, die ein Mitarbeiter im Unternehmen ausfüllt: Für jede Rolle wird einmalig definiert, was ein Mitarbeiter dieser Rolle mit den Daten und dem System machen darf. Neue Mitarbeiter werden einfach einer entsprechenden Rolle zugeordnet und bekommen so mit nur einem einzigen Vorgang alle für ihre Aufgabe notwendigen Rechte. Dieses Verfahren erleichtert nicht nur den Alltag der Administratoren, sondern hilft auch dabei, Fehler bei der manuellen Rechtevergabe zu vermeiden.

Hochverfügbarkeit

Auch bei der im Unternehmenseinsatz extrem wichtigen Hochverfügbarkeit und Skalierbarkeit hat MariaDB heute die Nase vorn. Zwar verfügt auch MySQL über eine bewährte Clustering-Lösung, doch ist diese funktional deutlich eingeschränkter als bei MariaDB. MariaDB setzt beim Clustering auf Galera, eine Clustering-Lösung des finnischen Anbieters Codership. Die entsprechenden Module sind mit der aktuellen Version 10.1 fest in MariaDB integriert, Galera ist Bestandteil der MariaDB Enterprise Cluster Subscription.

Ergänzt wird diese Technologie um MariaDB MaxScale: MaxScale ist im Kern ein Datenbank-Router, der zum Load-Balancing von Galera-Clustern, Master-Slave-Replikationen und als Replikations-Relay eingesetzt wird. MaxScale wurde von der MySQL-Community zur "Application of the Year 2016" gewählt. MaxScale ist für die Anwendung unsichtbar, der Router stellt aus Sicht der Anwendung eine normale Datenbankinstanz dar. Gegenüber dem Datenbank-Cluster wiederum, bildet MaxScale eine übergeordnete Schicht, die die Kommunikation zwischen Anwendung und Datenbanken steuert. Der besondere Charme dieser Lösung: Änderungen an den Datenbank-Clustern wirken sich nicht auf die Anwendungsschicht aus, sie haben also keine Anpassungen auf Anwendungsseite zur Folge. Auch kann die Datenbank so unabhängig von der Anwendungsschicht skalieren. Ebenso schlagen Änderungen bei der Anwendung ihrerseits nicht zwingend auf die Datenbanken im Hintergrund zurück. Der Aufwand beim horizontalen Skalieren sinkt deutlich.

Das Konzept an sich ist zwar nicht neu. Im Gegensatz zu anderen DB-Proxys verarbeitet MaxScale jedoch die Anfragen auf genau dieselbe Art und Weise, wie es die Datenbank MariaDB macht und besitzt so deutliche Geschwindigkeitsvorteile. "MaxScale ist für uns ein integraler Bestandteil der Enterprise-Edition", erläutert Vyas. "Es gibt bei MySQL kein vergleichbares Gegenstück dazu. In den neuen MaxScale-Release 2.0, der in wenigen Wochen verfügbar sein wird, wurden zudem weitere wichtige Funktionen für den professionellen Einsatz hinzugefügt. So verfügt die kommende Version zum Beispiel über eine Firewall, die die Sicherheitsfunktionen von MariaDB noch um einen effektiven Schutz vor SQL-Injections und anderen Bedrohungen erweitert."

Optimierte Leistung

In vielen Einsatzszenarien hat die Leistungsfähigkeit einer Datenbank höchste Priorität. Auch hier hat MariaDB mittlerweile einige interessante Merkmale vorzuweisen. Dazu gehört die Optimierung von Subqueries (Unterabfragen), bei denen Anweisungen geschachtelt sind, oder auch die Defragmentierung von InnoDB-Tabellen. Die Optimierungen zeigen besonders dann Wirkung, wenn hohe Workloads bewältigt werden müssen. Im Benchmark DBT3 Power Test, mit 22 verschiedenen, recht heftigen JOIN-Abfragen, zeigt sich ein signifikanter Geschwindigkeitsvorteil bei den meisten Abfragen von MariaDB gegenüber MySQL.

Allerdings muss man Benchmarks generell mit etwas Vorsicht betrachten. Ihr Aussagewert ist auf sehr spezielle Einsatzszenarien begrenzt, Labortests bilden nur einen kleinen Ausschnitt der Wirklichkeit ab. Im Alltag viel wichtiger sind Werkzeuge, um die Datenbank-Leistung auf den eigenen Bedarf hin zu optimieren. Und auch hier bietet MariaDB einige sehr weitreichende Möglichkeiten, wie zum Beispiel von der eingesetzten Speicher-Engine unabhängige Statistiken. Die daraus gewonnenen Daten können automatisch in den integrierten Query Optimizer einfließen, der daraus einen möglichst idealen Ausführungsplan für die SQL-Anweisungen erstellt. So optimiert sich die Datenbank im täglichen Betrieb weitgehend von selbst und passt sich den Anforderungen des Unternehmens an.

Fazit

MariaDB hat sich durch die kontinuierliche Weiterentwicklung in den vergangenen Monaten, zu einem eigenständigen Datenbank-Management-System entwickelt, das kaum noch als reiner Fork von MySQL bezeichnet werden kann. Vor allem die Fortschritte bei Hochverfügbarkeit, Sicherheit und Performance haben für einen spürbaren Vorsprung vor MySQL gesorgt.

Zudem stellt MariaDB neue, unternehmensrelevante Funktionen nicht nur in den kommerziellen Versionen bereit, sondern integriert diese zeitgleich in die freien Community-Builds. Ein klares Bekenntnis zu Open Source in Form der MariaDB Foundation sorgt zudem für Planungssicherheit seitens der Anwender. Innerhalb der Open Source-Community ist MariaDB deswegen schon seit einiger Zeit gut angesehen: In fast allen großen Linux-Distributionen ist MariaDB heute der Standard.

Kaj Arnö auf unseren IT-Tagen 2016 in Frankfurt

Kaj Arnö hielt eine der Keynotes der IT-Tage 2016 in Frankfurt. Sein Thema: Zur Geschichte von MySQL und MariaDB. Und warum es sich lohnt, jetzt  von MySQL auf MariaDB umzusteigen. Kaj Arnö ist Mitgründer von MariaDB, Chief Evangelist und VP Europe.

Autor

Jan Schulze

Jan Schulze arbeitet als freier Journalist mit den Schwerpunkten Datenbanken, IT-Sicherheit, Datenschutz, ITIL und Digital Transformation.
>> Weiterlesen
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben