MariaDB ist ein relationales Open Source Datenbankmanagementsystem, welches als Fork aus dem bekannten MySQL entstanden ist. MariaDB hat einige Ähnlichkeiten zu MySQL – aber welche besonderen Unterschiede es gibt und mit welchen Features MariaDB glänzt, darauf möchten wir hier genauer eingehen.
Inhaltsverzeichnis
Die Entstehung von MariaDB
Das Datenbankmanagementsystem (DBMS) wurde von Micheal Widenius, dem früheren Hauptentwickler von MySQL, initiiert und entwickelt. MariaDB verdankt den Namen der zweiten, jüngeren Tochter von Widenius: Maria. Die aktuellste Version von MariaDB 10.5 erschien am 04. Dezember 2019.
Als Fork von MySQL, auch wenn diese Bezeichnung dem DBMS nicht mehr gerecht wird, hat MariaDB ebenfalls SQL als Datenbanksprache implementiert und gehört zu den relationalen Datenbanken. Diese zeichnen sich durch ihre, auf Beziehungen (engl.: Relations) basierte, Darstellung der Daten aus. Beispielsweise wird die Information eines Buches, die sich in Autor, Titel, Verlag und ISBN aufteilen lässt, getrennt in der Datenbank abgelegt und dann durch eindeutig identifizierbare Schlüssel miteinander in Relation gesetzt.
Lesetipp: Was ist MySQL?
Lizenzierung
MariaDB ist ein Open Source Projekt und wird unter der GNU General Public License vertrieben. Dadurch lässt sich MariaDB sowohl im Enterprise- wie auch im OpenSource-Bereich frei nutzen.
Mit der MariaDB Foundation hat Widenius eine Organisation auf die Beine gestellt, die sich um den Erhalt der Open Source Nutzung des DBMS bemüht. Seit 2012 agiert die unabhängige Stiftung, und soll nicht nur die freie Software MariaDB schützen, sondern auch Entwickler und Nutzer. Weitere Aufgaben der MariaDB Foundation sind die Implementierung von Standards sowie die Bewahrung und Sicherstellung der Kompatibilität zu anderer Software.
Dass MariaDB unter einer Open Source Lizenz vertrieben wird, begründet sich vor allem durch die Entstehungsgeschichte. Als Oracle im Jahr 2010 MySQL erworben hat, gab es vonseiten der MySQL Community, wie auch vom Gründer Widenius Sorge um die Freiheit der Software. Wie sich herausstellte, betreibt Oracle heute die featurereichen MySQL Versionen unter einer monetären Lizenz, außer der etwas abgespeckten Community-Edition, die weiterhin als freie Software herausgegeben wird.
Verwendungszweck von MariaDB
Aufgrund seiner Eigenschaften als frei Software, hat MariaDB nicht nur Linux-Distributionen angelockt. Die Wikimedia Foundation, welche unter anderem die Server für die bekannte Seite Wikipedia zur Verfügung stellt, wechselte 2013 auf MariaDB. Distributionen wie Fedora, CentOS oder openSUSE entschieden sich MariaDB als Standard-Installation anzubieten. Grund hierfür ist sicherlich der Open Source Aspekt des DBMS. Wikimedia und eben auch Linux Distributionen sind große Befürworter von freier Software.
Auch WordPress genießt die Vorzüge einer Open Source Software, dementsprechend lässt sich MariaDB auch in WordPress integrieren. Der Austausch von MySQL nach MariaDB ist einfach und wird nur in Ausnahmen komplizierter. Beispielsweise wenn in MySQL Features genutzt werden, die MariaDB noch nicht unterstützt. Beim Wechsel profitiert man, egal ob in der Enterprise- oder Community-Version, von der starken Performance, die MariaDB zu bieten hat. So sind alle Features der Enterprise-Version auch in der Community-Version enthalten. Dadurch gibt es auch keine Einbußen als Privat- oder Business-Entwickler. Die versionsübergreifende Feature-Unterstützung ist dazu auch frei von monetären Bezahlmodellen, während unter MySQL nur die abgespeckte Community-Version als freie Software vertrieben wird. Daneben existieren noch drei weitere Versionen (Standard, Enterprise und Cluster CGE), die monetisiert wurden.
Kompatibilität
Lange Zeit galten MySQL und MariaDB als kompatibel und einfach austauschbar. Im Laufe der Entwicklung drifteten aber beide Systeme immer mehr auseinander, sodass heutige Features sogar inkompatibel sind. Zwar bleiben Basisoperationen, sowie viele Funktionsnamen und die Syntax der SQL-Befehle an sich zwar weitgehend kompatibel, nicht aber Funktionen die eine andere, inkompatible Implementierung besitzen oder gar nicht erst umgesetzt wurden. Eines der bekanntesten Beispiele ist hier die Verwendung des JSON-Datentyps, welcher in MariaDB und MySQL auf unterschiedliche Weise implementiert wurde.
Features von MariaDB
Engines
Die Entwickler von MariaDB verfolgen die Strategie, das DBMS für verschiedenste Anwendungsfälle zu konzipieren und optimieren. Dabei legte man viel Wert auf unterschiedliche Engines, die für unterschiedliche Einsatzszenarien optimiert wurden.
Die InnoDB-Engine, die sich MySQL und MariaDB teilen, wird für Transaktionen verwendet. ColumnStore wird für massive parallele Architekturen verwendet und arbeitet mit einem spaltenbasierten Modell. Connect-Engine hingegen ist ein sogenannter Generalist, welcher sich durch seine universelle Kommunikation mit anderen Datenbanksystemen auszeichnet.
Security
Um die Integrität der Daten zu bewahren, bietet MariaDB native Verschlüsselung auf Storage-Ebene an. Nicht nur einzelne Tabellen-Spalten, sondern auch die ganze Tabelle sowie Log-Dateien können verschlüsselt werden. Bei der Implementierung wurde auch darauf geachtet, Binär-Logs zu verschlüsseln, um vor unberechtigter Kopie der Daten zu schützen.
Doch dort endet der Sicherheitsfaktor des DBMS nicht: um unautorisierte Zugriffe zu vermeiden, können neben den standardmäßigen Benutzern und Benutzergruppen auch Rollen vergeben werden. Dadurch wird die Rechtevergabe deutlich vereinfacht. Während zuvor jedem Nutzer seine Rechte manuell zugewiesen wurden, können die Rechte nun einmalig an eine Rolle vergeben, und die Nutzer dann hinzugefügt werden.
MariaDB Enterprise Server
Für Enterprise-Nutzer ist MariaDB vor allem wegen seiner Leistungsfähigkeit beliebt. Das DBMS bietet ein breites Monitoring der Datenbankumgebung, sowie selbst für große Datenbanken äußerst zügige Backups. Selbstverständlich wird auch Business-Support mit entsprechenden SLAs angeboten.
JSON Support
MariaDB unterstützt seit Version 10.0.16 JSON-Dokumente. Um die Kompatibilität mit MySQL weiterhin zu gewährleisten, entschied man sich JSON-Objekte etwas anders zu handhaben. Unter MySQL werden JSON-Objekte konvertiert abgespeichert, um die JSON-Elemente lesbarer und zugänglicher zu machen. In MariaDB werden JSON-Objekte als Longtext gespeichert. Die Inkompatibilität entsteht daher erst, wenn die entsprechenden Daten verwendet werden sollen. Hier implementierte MariaDB spezielle Funktionen, um mit den JSON-Daten sinnvoll umgehen zu können. MySQL wählte einen anderen Ansatz.
Hier ein Beispiel wie die Speicherung von JSON in den beiden DBMS gehandhabt wird:
MySQL:
MySQL> create table t1 (j json); Query OK, 0 rows affected (0.1826 sec) MySQL> show create table t1; +-------+----------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( | | | `j` json DEFAULT NULL | | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 | | | COLLATE=utf8mb4_0900_ai_ci | +-------+----------------------------------------------------------+ 1 row in set (0.0149 sec)
MariaDB:
MariaDB> create table t2 (j json); Query OK, 0 rows affected (0.046 sec) MariaDB> show create table t2; +-------+-----------------------------------------+ | Table | Create Table | +-------+-----------------------------------------+ | t2 | CREATE TABLE `t2` ( | | | `j` longtext CHARACTER SET utf8mb4 | | | COLLATE utf8mb4_bin DEFAULT NULL | | | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------+-----------------------------------------+ 1 row in set (0.000 sec)
MariaDB – Die Zusammenfassung
MariaDB genießt großes Ansehen als freie Software und wird von großen Plattformen gerne genutzt. Die Unterschiede zu MySQL sind über die Jahre stärker geworden. Deshalb muss man sich schon genauer anschauen, welches DBMS man für seinen persönlichen Anwendungsfall verwenden möchte.
Der Fokus auf verschiedene Engines, und der damit verbundenen Optimierung der Performance, sind ein ausschlaggebender Verkaufspunkt für MariaDB. Auch der starke Blick auf Sicherheit und die Integrität der Daten ist für die Nutzer des relationalen DBMS äußerst wichtig.
Nicht zuletzt punktet MariaDB mit verschiedenen Versionen, von Community bis Enterprise, welche alle als freie Software betrieben werden.