MariaDB vs. MySQL
Mysql oder MariaDB: Welches Datenbank-Managementsystem hat die Nase vorn? Das Open-Source-Projekt MySQL kann auf eine mehr als 20-jährige Geschichte zurückblicken. MariaDB – ein Fork des relationalen Datenbank-Klassikers – trat erst 2009 auf den Plan. Stand bei MariaDB anfangs die Entwicklung eines Drop-in-Replacements mit hohen Open-Source-Community-Standards im Vordergrund, verfolgen beide Projekte aktuell ganz unterschiedliche Entwicklungsziele. Welche das sind, erfahren Sie bei uns.
Die Entwicklung von MySQL und MariaDB
Schlüsselfigur hinter MySQL und MariaDB ist der finnische Softwareentwickler Michael „Monty“ Widenius. Zusammen mit den Schweden David Axmark und Alan Larsson gründete Widenius das Aktienunternehmen MySQL AB, das 1995 – nur ein Jahr nach Beginn der Entwicklung – das erste Release des quelloffenen Datenbank-Managementsystems (DBMS) MySQL veröffentlichte und damit eine weltweite Erfolgsgeschichte anstieß. Diese gipfelte 2008 im Verkauf des Software-Projekts an Sun Microsystems – als Verkaufspreis wird eine Summe von einer Milliarde US-Dollar genannt.
Im Jahr 2009 verließ Widenius das Softwareprojekt zusammen mit anderen MySQL-Kernentwicklern und konzentrierte sich fortan auf die Entwicklung des MySQL-Forks MariaDB. Grund für den Bruch war die sich bereits anbahnende Übernahme von Sun durch den in der Open-Source-Community umstrittenen Software-Giganten Oracle im Jahr 2010. Das Entwickler-Team befürchtete, dass Oracle in einen Interessenkonflikt gerät, wenn das Unternehmen die Open-Source-Software MySQL und gleichzeitig auch eine proprietäre Datenbank-Software entwickelt.
Laut Widenius soll MariaDB
- die MySQL-Talente unter einem Dach zusammenhalten
- den Fortbestand der Community-Entwicklung fördern
- sicherstellen, dass immer eine freie Version von MySQL existiert
Zu diesem Zweck gründete Widenius im Jahr 2012 die MariaDB-Foundation. Die Entwicklung des MySQL-Forks erfolgte zunächst durch die 2009 gegründete Monty Program AB. Diese fusionierte 2014 mit SkySQL zur MariaDB Corporation.
Bei der Benennung der von ihm ins Leben gerufenen Open-Source-Projekte besinnt sich Michael „Monty“ Widenius stets auf seinen Nachwuchs. Das My in MySQL entspricht dem Vornamen seiner ältesten Tochter. Der MySQL-Fork ist nach der jüngeren Tochter Maria benannt und der Name seinen Sohnes Max findet sich in MaxDB und MaxScaler wieder.
Während das Community-Projekt MariaDB Server von der MariaDB-Foundation entwickelt wird, kümmert sich die MariaDB-Corporation um die kommerziellen Geschäftsbereiche des Unternehmens. Mit dieser Aufteilung will sich das Unternehmen von der Orcale Corporation abgrenzen, wo beide Geschäftsbereiche unter derselben Verwaltung stehen – eine Entscheidung, die von der Open-Source-Community positiv aufgenommen wird.
MariaDB hat einen starken Fokus auf die offene Entwicklung. Im Vordergrund stehen zwei Grundsätze:
- Der Quellcode von sich in der Entwicklung befindenden Programmteilen steht über öffentliche Respositorys zur Verfügung.
- Alle Entwicklungsschritte werden öffentlich dokumentiert.
Oracles duales Lizenzierungssystem hingegen steht bei der Open-Source-Community in Kritik. Diese gründet sich auf die wachsenden Unterschiede zwischen der quelloffenen Community-Version und den proprietären MySQL-Produkten. Bemängelt wurde in der Vergangenheit zudem der intransparente Umgang mit Software-Fehlern.
Die Entwicklung von MySQL und MariaDB in der Timeline
1995 | Erstes internationales Release des Open-Source-DBMS MySQL durch die MySQL AB |
2008 | Verkauf von MySQL an Sun Microsystems |
2009 | Release des MySQL-Forks MariaDB durch die Monty Program AB |
2010 | Übernahme von Sun Microsystems durch Oracle |
2012 | Gründung der MariaDB-Foundation |
2014 | Fusion der Monty Program AB mit SkySQL und Umbenennung in MariaDB Corporation. |
Schaffen Sie ein sicheres „Zuhause“ für Ihre Webprojekte mit dem SQL Server Hosting von IONOS.
MySQL und MariaDB im Vergleich
Die Datenbank-Managementsysteme MySQL und MariaDB basieren auf demselben Software-Kern. MariaDB ist ein Fork (eine Abspaltung) von MySQL 5.1, hat sich im Laufe der Zeit aber zum eigenständigen Datenbank-Managementsystem entwickelt. Wir stellen die Unterschiede der aktuellen GA-Versionen (General Availability) MySQL 8.0.11 und Maria 10.2.8 gegenüber und gehen dabei auf folgende Punkte ein:
- Datenbankstruktur
- Datenbank-Engines
- Datenbankabfragen
- Performance
- Hochverfügbarkeit
- Sicherheit
- Ökosystem
- Support
- Dokumentation und Community
Datenbankstruktur
Der Entwicklung von MariaDB liegt der Anspruch zugrunde, vollkommene Kompatibilität zur Datenbankstruktur sowie zu den APIs und Konfigurationsdateien von MySQL sicherzustellen, um Anwendern ein Drop-in-Replacement zu ermöglichen. Ein Upgrade von MySQL auf MariaDB oder andersherum soll genau so leicht möglich sein wie ein Upgrade zwischen zwei verschiedenen MySQL-Versionen. Dies Ziel zu erreichen, gelang dem Entwicklerteam von MariaDB bis einschließlich MySQL-Version 7.
Prinzipiell liegt beiden Datenbank-Managementsystemen dieselbe Datenbankstruktur zugrunde. Beide Systeme entsprechen dem relationalen Datenbankmodell. Die Daten- und Tabellendefinition ist kompatibel, es kommen identische Protokolle, Strukturen und Programmierschnittstellen zum Einsatz. Alle MySQL-Konnektoren lassen sich ohne Modifikation auch mit MariaDB verwenden, um Anwendungen und Tools über standardisierte Datenbankschnittstellen wie ODBC oder JDBC anzubinden. Bei Administrationsaufgaben und Backups kommen auch bei MariaDB bewährte Kommandozeilenprogramme wie mysqldump oder mysqladmin zum Einsatz.
Um Kompatibilitätsprobleme auf ein Minimum zu reduzieren, gleicht das MariaDB-Entwicklerteam den Quellcode des Forks einmal im Monat mit dem MySQL-Code ab. Die Binärkompatibilität beider Datenbank-Managementsysteme endet jedoch mit MySQL 8. Ab Version 8.0 ist MySQL nicht mehr abwärtskompatibel – weder zu älteren MySQL-Versionen noch zu MariaDB.
Ein Beispiel dafür, dass die Entwicklung beider Open-Source-Projekte in verschiedene Richtungen geht, ist das neue transaktionale Data-Dictionary von MySQL 8. Dieses ist Teil einer Strategie zur Verarbeitung von Metadaten, die sich von bisherigen Konzepten grundlegend unterscheidet. Da MariaDB derzeit kein vergleichbares Feature entwickelt, ist davon auszugehen, dass eine Kompatibilität auf der Ebene von Datafiles künftig nicht mehr gegeben sein wird.
MariaDB hat sich als binärkomplatibler 1:1-Ersatz für MySQL etabliert. Ab MySQL Version 8.0 ist diese Kompatibilität jedoch nicht mehr gegeben.
Datenbank-Engines
MariaDB möchte sich von MySQL zukünftig vor allem durch Flexibilität abgrenzen. Anwendern steht neben den von MySQL unterstützten Standard-Engines eine stetig wachsende Anzahl alternativer Datenbank-Engines für spezielle Anwendungsfälle zur Verfügung.
Bei einer Datenbank-Engine handelt es sich um ein Speichersubsystem, das dem Datenbank-Managementsystem das Erstellen, Lesen, Aktualisieren und Löschen von Daten in Datenbanktabellen ermöglicht – siehe CRUD.
Folgende Tabelle zeigt die verfügbaren Datenbank-Engines für MySQL 8.0.11 und MariaDB 10.3 (laut Dokumentation).
Datenbank-Engine | MySQL 8.0.11 | MariaDB 10.3.8 | Beschreibung |
---|---|---|---|
InnoDB/ XtraDB | InnoDB ist das Standard-Speichersubsystem für MySQL (ab Version 5.5). MariaDB verwendete bis Version 10.1 den erweiterten InnoDB-Fork XtraDB als Standard- Datenbank-Engine. Seit Version 10.2 kommt auch bei MariaDB InnoDB als Speichersubsystem zu Einsatz. InnoDB bietet transaktionssichere Lese- und Schreibzugriffe. | ||
MyISAM | MyISAM – das Standard-Speichersubsystem älterer MySQL-Versionen – bietet schnelle Zugriffe auf Datenbanktabellen und Indizes. Eine Transaktionssicherung bietet MyISAM im Gegensatz zu InnoDB jedoch nicht. | ||
MEMORY | MEMORY ist ein Speichersubsystem für temporäre Daten – während die Tabellendefinition auf der Festplatte liegt, werden die Daten im Arbeitsspeicher vorgehalten. MEMORY eignet sich für In-Memory-Datenbanken mit schnellen Zugriffszeiten und geringer Latenz. | ||
CSV | Die CSV-Engine speichert Daten im CSV-Format in Form von Datenfeldern, die durch Kommata abgetrennt sind. | ||
Archive | Die Datenbank-Engine ist auf eine Langzeitspeicherung großer Datenmengen ausgelegt und bietet diverse Kompressionsalgorithmen, die eine platzsparende Datenhaltung ermöglichen. | ||
BLACKHOLE | BLACKHOLE dient der Überprüfung von SQL-Statements. Statt Daten zu speichert, loggt BLACKHOLE lediglich die SQL-Syntax. | ||
Merge | Die Datenbank-Engine Merge ermöglicht es, mehrere MyISAM-Tabellen mit gleicher Struktur zu einer gemeinsamen Tabelle zusammenzuzuführen. | ||
Federated/ FederatedX | Das Speichersubsystem Federated ermöglicht es MySQL, per Remote auf Tabellen zuzugreifen, die auf einem anderen Server liegen. MariaDB verwendet den Fork FederatedX. | ||
ColumnStore | - | Bei ColumnStore handelt es sich um eine Portierung von InfiniDB, die eine spaltenbasierte Verarbeitung sehr großer Datenmengen im Petabyte-Bereich ermöglicht. | |
Aria | - | Aria wird seit 2007 als absturzsichere Alternative von MyISAM entwickelt. | |
Cassandra | - | Mit Cassandra steht MariaDB-Nutzern eine Datenbank-Engine für die Verwaltung sehr großer strukturierter Daten zur Verfügung. Die Software folgt einem nicht-relationalen Ansatz (NoSQL) und ist auf Hochverfügbarkeit und Ausfallsicherheit (ohne Single Point of Failure) ausgelegt. | |
CONNECT | - | Die CONNECT Storage-Engine ermöglicht den Zugriff auf diverse externe Datenquellen wie DBase, CSV, DOS, FMT und XML – egal, ob lokal oder per remote. | |
Mroonga | - | Mroonga ist eine spaltenbasierte Datenbank-Engine, die eine Volltextsuche für diverse Sprachen inklusive Chinesisch, Japanisch und Koreanisch bietet. | |
MyRocks | - | Die Datenbank-Engine MyRocks wurde für eine schnelle, latenzarme Datenspeicherung optimiert und bietet eine deutlich bessere Kompression als das Standard-Speichersubsystem InnoDB. | |
OQGRAPH | - | Mit der Open Query GRAPH Computation Engine (kurz OQGRAPH) lassen sich Daten in hierarchischen Datenbankstrukturen (Baumstrukturen) und als komplexe Graphen verarbeiten. | |
Sequence | - | Die Sequence Storage Engine erlaubt es Anwendern, auf- und absteigende Zahlenfolgen positiver Ganzzahlen inklusive Startwert, Endwert und Inkrement zu erzeugen. | |
SphinxSE | - | Die Sphinx Storage Engine (SphinxSE) ist eine Alternative zur integrierten Volltextsuche von MariaDB. Die Textsuche wird vom Sphinx-Daemon searchd zur Verfügung gestellt. | |
Spider | - | Bei Spider handelt es sich um eine Datenbank-Engine mit integrierter Sharding-Funktion (Partitionierung). Spider unterstützt Datenbankpartitionierung und eXtended Architecture (XA). So lassen sich verschiedene Ressourcen mit ein und derselben Transaktion ansprechen. Tabellen verschiedener Datenbankinstanzen lassen sich so nutzen, als handle es sich um Tabellen auf derselben Instanz. | |
TokuDB | - | Die Datenbank-Engine TokuDB wurde für die Verarbeitung großer Datenmengen entwickelt und richtet sich dabei speziell an Big-Data-Anwendungen. |
Datenbankabfragen
In der Anwendung unterscheiden sich MySQL und MariaDB nicht. Beide DBMS streben eine 100-prozentige Kompatibilität zur Datenbanksprache SQL an. Anwender nutzen identische SQL-Statements, um Datenbankeinträge zu erstellen, zu aktualisieren, abzurufen oder zu löschen.
Eine Einführung in grundlegende SQL-Statements bietet unser MySQL-Tutorial für Einsteiger.
Performance
Die Leistungsfähigkeit eines Datenbanksystems hat im Unternehmenseinsatz meist direkten Einfluss auf die Geschäftsprozesse. Viele Anwender, die sich für eines der von Widenius ins Leben gerufenen Open-Source-Projekte interessieren, stellen sich daher vor allem eine Frage: Bietet MariaDB im Vergleich zu MySQL die bessere Performance? Benchmark-Tests wie der DBT-3 weisen darauf hin. Ausschlaggebend ist hierbei unter anderem, welche Datenbank-Engine zum Einsatz kommt. Benchmark-Tests für Setups mit unterschiedlichen Datenbank-Engine stellen beide Entwickler-Communities auf den jeweiligen Projekt-Websites zur Verfügung.
Der Aussagewert entsprechender Labortests für den Praxiseinsatz ist jedoch begrenzt, da die Performance einer Datenbank stark davon abhängt, inwieweit die Implementierung der Software auf die jeweiligen Anforderungen abgestimmt wurde. Anwender sollten sich daher vor allem darauf konzentrieren, welche Möglichkeiten das jeweilige Datenbank-Managementsystem bietet, die Software für den jeweiligen Anwendungsfall zu anzupassen.
MariaDB punktet hier nicht nur mit einer großen Auswahl alternativer Datenbank-Engines, sondern bietet auch einen effizienten Optimizer für SQL-Abfragen. Ab Version 10.0.1 setzt MariaDB bei der Optimierung von Abfragen nicht mehr auf interne Statistiken der jeweiligen Datenbank-Engine, sondern auf Engine-unabhängige Tabellen-Statistiken. Diese werden als herkömmliche Tabellen in der Datenbank gespeichert und ermöglichen es, deutlich mehr Werte zu erfassen und auszuwerten, um einen idealen Plan für die Ausführung von SQL-Statements zu ermitteln.
Diverse Anleitungen zur Optimierung der Datenbank-Performance finden Interessierte in der Dokumentation von MariaDB. Die entsprechenden Artikel bieten Hardware-Tipps und Informationen zu Betriebssystem-Konfigurationen, Optimierungsstrategien für Datenstrukturen, Index-Optimierung, Performance-Strategien für Abfragen und Unterabfragen, Tabellen-Optimierung, Tipp und Tricks zu System-Variablen, Puffern, Caches und Threads, zur datenbankinternen Performance-Verbesserung sowie Hinweise zu Verschlüsselung, Hashing und Kompression.
Auch MySQL bietet umfangreiches Informationsmaterial zum Datenbank-Tuning an. Doch dieses ist größtenteils nur solchen Nutzern zugänglich, die sich mit einem Oracle Web-Konto anmelden.
Hochverfügbarkeit
Sowohl MySQL als auch MariaDB eigenen sich für Szenarien mit verteilten Datenbanken. Um Anwendern hochverfügbare Systeme mit linearer Skalierbarkeit anbieten zu können, stellen beide Software-Projekte Cluster-Lösungen zu Verfügung:
- MySQL Cluster
- MariaDB Galera Cluster
Bei MySQL Cluster handelt es sich um eine ACID-konforme Echtzeit-Transaktionsdatenbank, die durch eine Multi-Master-Architektur ohne Single Point of Failure eine Verfügbarkeit von 99,9999% erreicht. Die Datenbank kann auf Standard-Hardware horizontal skaliert werden und bietet eine Auto-Sharing-Funktion für lese- und schreibintensive Workloads. Der Datenzugriff erfolgt je nach Bedarf über SQL- oder NoSQL-Schnittstellen. MySQL Cluster wird als separates Release angeboten. Die aktuelle Version ist 7.5. Wie MySQL selbst wird auch die Cluster-Lösung mit einem dualen Lizenzsystem vertreiben. Die Community-Version wird unter der GNU General Public License angeboten.
MariaDB setzt bei verteilten Datenbanken auf die Cluster-Software Galera der finnischen Softwarefirma Codership. Eine entsprechende Schnittstelle ist ab MariaDB 10.1 standardmäßig integriert. Der Download einer separaten Cluster-Version ist somit nicht notwendig. Auch dem MariaDB Galera Cluster liegt eine Multi-Master-Architektur zugrunde. Als Database-Engine steht im Clusterbetrieb lediglich InnoDB (bzw. XtraDB) zur Verfügung. Um die eigene Cluster-Lösung vom MySQL-Produkt abzuheben, bietet das Entwicklerteam von MariaDB mit MaxScale eine spezielle Erweiterung für das Datenbank-Managementsystem, die Anwendern diverse Zusatzfunktionen für das Routing in verteilten Systemen bietet.
Bei MaxScale handelt es sich um einen Datenbank-Proxy, der in erster Line der Lastverteilung dient, durch Plugins jedoch so konfiguriert werden kann, dass er Datenbankzugriffe nicht nur weiterleitet, sondern diese bei Bedarf den Erfordernissen entsprechend modifiziert. Der Proxy anonymisiert oder pseudonymisiert sensible Daten, blockt Anfragen gemäß zuvor konfigurierter Regeln ab, schützt vor Denial of Service (DoS), leitet automatisch Failover-Strategien ein und erhöht die Performance der Datenbank durch Caching und Read-Write-Splitting (die Umleitung von Lese- und Schreibzugriffe auf verschiedene Datenbank-Instanzen).
Anders als der MariaDB Server steht MaxScale ab Version 2 jedoch nicht mehr unter GPL-Lizenz. Stattdessen hat die MariaDB-Corporation mit der Business Source License (BSL) ein Lizenzmodell entwickelt, das die Ansprüche der Open-Source-Community mit den ökonomischen Anforderungen der Software-Entwicklung vereinen soll.
Business Source License (BSL) ist den Entwicklern zufolge eine Alternative zu Closed Source und Open Core: Quellcode unter BSL steht Anwendern jederzeit frei zur Verfügung, der Einsatz der Software jedoch ist für eine bestimmte Zeitspanne eingeschränkt. MaxScale beispielsweise kann für Szenarien mit bis zu drei Datenbank-Instanzen kostenlos verwendet werden. Anwender, die mehr Datenbank-Instanzen benötigen, müssen eine entsprechende Nutzungslizenz erwerben. Ist die vom Anbieter definierte Zeitspanne abgelaufen, wird die Business Source License automatisch in eine GPL-äquivalente Open-Source-Lizenz umgewandelt. Jedes Release von MaxSale steht Anwendern nach spätestens 3 Jahren unter GPL-Lizenz ohne Einschränkungen zur Verfügung.
Welches Ziel die MariaDB-Corporation mit der Business Source License verfolgt, erklärte Chief Evanglist Kaj Arnö in einer Keynote auf den IT-Tagen 2016 in Frankfurt am Main (ab Minute 35:35).
Sicherheit
Zu den zentralen Sicherheitsfunktionen eines Datenbank-Managementsystems zählen Verschlüsselung, Authentifizierung und Benutzerrollen.
Sowohl MySQL als auch MariaDB bieten Verschlüsselungsfunktionen für inaktive Daten (Data at rest). MySQL setzt eine Verschlüsselung der in der Datenbank gespeicherten Daten mithilfe der Datenbank-Engine InnoDB auf Tablespace-Ebene um. Eine Verschlüsselung einzelner Datenbanktabellen ist nicht möglich.
Bei Tablespaces (Tabellenräumen) handelt es sich um logische Speichereinheiten relationaler Datenbank-Engines wie InnoDB, die sämtliche Daten des Datenbanksystems enthalten. Jeder Tablespace beinhaltet mindestens eine Datafile – eine physische Datei des zugrundeliegenden Betriebssystems, in der sowohl Datenbanktabellen als auch Indizes gespeichert werden.
MariaDB hingegen bietet seit Version 10.1 deutlich differenziertere Verschlüsselungsfunktionen. Diese umfassen eine Data-at-rest-Verschlüsselung auf folgenden Datenbank-Ebenen:
- InnoDB-Tabellenräume
- InnoDB-Tabellen
- InnoDB-Log-Dateien
- Aria-Tabellen
- Temporäre Dateien
- Binäre Logdaten
Mit Rolling Encryption Keys bietet MariaDB zudem eine Funktion, die es ermöglicht, ein Ablaufdatum für Verschlüsselungsschlüssel festzulegen.
Beide Datenbank-Managementsysteme unterstützen den Key Management Service (KMS) von Amazon Web Services (AWS) via Plugin.
Bei der Benutzer-Authentifizierung setzen MySQL und MariaDB ebenfalls auf ein Plugin-System. Das MySQL-Entwicklerteam stellt Anwendern mit sha256_password und caching_sha2_password zwei Authentifizierungs-Plugins zur Verfügung. Letzteres bietet neben der Standard-Authentifizierung via Secure Hash Algorithm ein serverseitiges Caching, das eine schnellere Re-Authentifizierung ermöglicht.
Auch MariaDB setzte bis Version 10.1.21 mit SHA-1 auf den Secure Hash Algorithm. Seit 10.1.22 kommt das ed25519-Plugin zum Einsatz. Bei ed25519 handelt es sich um ein EdDSA-Signaturschema, das SHA-2 mit Curve25519 kombiniert.
Die Verschlüsselungstechnologien, die bei MariaDB zum Einsatz kommen, stammen unter anderem von Google und dem deutschen Software-Unternehmen Eperi.
Beide Datenbank-Managementsysteme unterstützen SSL-verschlüsselte Verbindungen.
Alleinstellungsmerkmal von MariaDB im Bereich Datenbanksicherheit ist die rollenbasierte Zugriffskontrolle (Role Based Access Control, RBAC), die seit Version 10.0.5 nativ ins DBMS implementiert ist, die Verwaltung von Zugriffsrechten deutlich vereinfacht und Fehler bei der manuellen Rechtevergabe reduziert. Ein ähnliches Feature sucht man bei MySQL bisher vergeblich.
Ökosystem
Mit dem dualen Lizenzsystem verfolgt Oracle bei MySQL eine Open-Core-Strategie. Während das Kernprogramm MySQL als Community-Edition mit öffentlichem Quellcode kostenlos zur Verfügung steht, werden diverse Erweiterungen für das Datenbank-Managementsystem nur in Kombination mit einer der kommerziellen Editionen angeboten. Dank einer starken Vernetzung mit der Open-Source-Community ist es dem MariaDB-Entwickler-Team jedoch möglich, Schnittstellen zu quelloffenen Alternativen für die meisten proprietären MySQL-Produkte in MariaDB zu implementieren.
Funktion | MySQL | MariaDB Server |
Monitoring | MySQL Enterprise Monitor (proprietär) | Webyog Monyog (proprietär) |
Backup | MySQL Enterprise Backup (proprietär) | MariaDB Backup (Fork von Percona XtraBackup, GPL) |
SQL Management | MySQL Workbench (GPL/proprietär) | Webyog SQLyog (GPL/proprietär) |
Load Balancing & Routing | MySQL Router (GPL/proprietär) | MariaDB MaxScale (BSL) |
Firewall | MySQL Enterprise Firewall (proprietär) | MariaDB MaxScale (BSL) |
Support
Professioneller Support steht sowohl bei MySQL als auch bei MariaDB lediglich zahlenden Kunden zur Verfügung.
Anwender, die eine Lizenz für die proprietären MySQL-Produkte erwerben, erhalten Zugang zum Oracle Premier Support. Dieser umfasst einen unlimitierten 24/7-Support, Zugang zur Wissensdatenbank, Wartungsreleases, Bug-Fixes, Patches und Updates. Darüber hinaus bietet der Oracle Premier Support eine Fehlerbehebung per Remote und professionelle Beratung zu Performance-Tuning und Installation. Bei Bedarf können Anwender benutzerdefinierte Replikationen, Partitionierungen, Schemata, Abfragen, APIs, Server-Erweiterungen sowie Funktionen und Routinen durch professionelle MySQL-Support-Techniker überprüfen lassen.
Die MariaDB-Corporation verkauft Support-Dienstleistungen im Rahmen einer MariaDB Subscription. Diese umfassen einen 24/7-Support mit maximaler Reaktionszeit von 30 Minuten, einen Benachrichtigungsservice sowie Patches und Bug-Fixes. Darüber hinaus werden kostenpflichtige Trainings, eine Datenbankadministration per Remote, Beratung im Bereich Performance, Hochverfügbarkeit, Sicherheit und Softwaretests sowie ein Migrationsservice angeboten. Laut der MariaDB-Corporation bietet das Support-Team der Firma professionelle Unterstützung sowohl für MariaDB als auch für MySQL.
Da das Entwickler-Team vom MySQL nahezu geschlossen zu MariaDB gewechselt ist, rühmt sich die MariaDB Corporation damit, nicht nur MariaDB, sondern auch den MySQL-Code besser zu verstehen als das Support-Team von Oracle.
Dokumentation und Community
MySQL ist im Besitz der Oracle Corporation, die auf der offiziellen MySQL-Website eine umfangreiche Dokumentation aller quelloffenen MySQL-Projekte veröffentlicht. Darüber hinaus stehen der Nutzergemeinde folgende Möglichkeiten zur Verfügung, sich über MySQL zu informieren:
Verantwortlich für die Dokumenation von MariaDB ist die MariaDB-Foundation, die sich bei dabei auf die Nutzergemeinde stützt.
Anwender, die sich an der Entwicklung und Dokumentation von MariaDB Servern oder den quelloffenen Anwendungen des MariaDB-Ökosystems beteiligen möchten, finden auf der Website der MariaDB Foundation entsprechende Informationen.
MariaDB vs. MySQL – die wichtigsten Merkmale im Überblick
MySQL ist ein bewährtes Datenbank-Managementsystem, das Anwendern als Open-Source-Software zur Verführung steht und sich mit zahlreichen Enterprise-Erweiterungen ergänzen lässt. Das MariaDB-Entwicklungsteam um Michael Widenius hat das Beste der MySQL-Kernsoftware übernommen und um zahlreiche Features erweitert. Für wen sich der Umstieg von MySQL auf MariaDB lohnt, zeigt folgende Tabelle, die zentrale Merkmale beider DBMS gegenüberstellt.
Merkmale | MySQL | MariaDB |
Erscheinungsjahr | 1995 | 2009 |
Aktuelle Version | MySQL 8.0.11 | MariaDB 10.3.8 |
Entwickler | Oracle | MariaDB Corporation Ab (MariaDB Enterprise) MariaDB Foundation (MariaDB Server) |
Lizenz | Duales Lizenzsystem (Proprietär und GPL 2) | GPL 2 |
Betriebssysteme | Oracle Linux Red Hat CentOS Oracle Solaris Ubuntu Debian SUSE Enterprise Linux Microsoft Windows Microsoft Windows Server Apple macOS FreeBSD Solaris | Red Hat / CentOS Ubuntu Debian Mint SUSE Enterprise Linux openSUSE Microsoft Windows Server Microsoft Windows Manjaro Fedora Arch Linux Apple macOS |
Programmiersprache | C and C++ | C, C++, Bash und Perl |
Primäres Datenbankmodell | Relationales Datenbankmodell | Relationales Datenbankmodell |
Sekundäre Datenbankmodelle | Dokumentenorientiertes Datenbankmodell Key-Value-Datenbank | Dokumentenorientiertes Datenbankmodell Key-Value-Datenbank Graphenorientierte Datenbank |
SQL-Schnittstelle | Ja | Ja |
NoSQL-Schnittstellen | Ja | Ja |
Protokoll | MySQL-Protokoll | MySQL-Protokoll |
Replikationni | Replikation mit GTID (Global Transaction Identifier) - Master-Master-Replikation - Master-Slave-Replikation | Replikation mit GTID (Global Transaction Identifier) - Master-Master-Replikation - Master-Slave-Replikation |
In-Memory Unterstützung | Ja | Ja |
Routing | MySQL Router (GPLv2) | MariaDB MaxScale (BSL) |
Partitionierung (Sharding) | Horizontale Partitionierung, Sharding mit MySQL Cluster oder MySQL Fabric | Horizontale Partitionierung, Sharding mittels Spider, CONNECT oder Galera |
SQL Management | MySQL Workbench (Microsoft Windows, macOS und Linux) | SQLyog von Webyog (Microsoft Windows, Linux) |
Monitoring | MySQL Enterprise Monitor (proprietär) | Monyog von Webyog (Microsoft Windows und Linux) (proprietär) |
Verschlüsselung | Verschlüsselung inaktiver Daten - InnoDB-Tabellenräume | Verschlüsselung inaktiver Daten - InnoDB-Tabellenräume - InnoDB-Tabellen - InnoDB-Log-Dateien - Aria-Tabellen - Temporäre Dateien - Binlogs |
Rollenbasierte Zugriffskontrolle | Nein | Ja |
Authentifizierung | Authentifizierung via SHA-256 | Authentifizierung via ed25519-Plugin |
Datenmaskierung | Via ProxySQL | Via MariaDB MaxScale (BSL) |
Firewall | Via MySQL Enterprise Firewall (proprietär) | Via MariaDB MaxScale (BSL) |
Auditing | Via MySQL Enterprise Audit Plugin (proprietär) | Via MariaDB Audit Plugin |
Analyse | Nein | Via MariaDB ColumnStore |
Routing & Load-Balancing | Via MySQL Router | Via MariaDB MaxScale (BSL) |
Backup | Via MySQL Enterprise Backup (proprietär) | Via MariaDB Backup (ein Fork von Percona XtraBackup) |
Common Table Expression (CTE) | Ja | Ja |
Fensterfunktion | Ja | Ja |
Temporale Tabellen mit Versionsverwaltung | Nein | Ja |
Query Rewriting | Ja | Nein |
Datentypen | String (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON) Numerisch (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN) Datum/Zeit (DATE, DATETIME, TIMESTAMP, TIME, YEAR) Large Object Datatypes (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB) | String (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON) Numerisch (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN) Datum/Zeit (DATE, DATETIME, TIMESTAMP, TIME, YEAR) Large Object Datatypes (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB) |
Räumliche Datentypen | GEOMETRY POINT LINESTRING POLYGON MULTIPOINT MULTILINESTRING MULTIPOLYGON GEOMETRYCOLLECTION | GEOMETRY POINT LINESTRING POLYGON MULTIPOINT MULTILINESTRING MULTIPOLYGON GEOMETRYCOLLECTION |
Datenbank-Engines | InnoDB MyISAM MEMORY CSV Archive BLACKHOLE Merge Federated | InnoDB/XtraDB MyISAM MEMORY CSV Archive BLACKHOLE Merge FederatedX ColumnStore Aria Cassandra CONNECT Mroonga MyRocks OQGRAPH Sequence SphinxSE Spider TokuDB |
Offizielle Konnektoren | ODBC C++ C ADO.NET JDBC PHP Python Perl Ruby Node.js | ODBC C++ C ADO.NET JDBC PHP Python Perl Ruby Excel JavaScript Swift R |
Fazit MySQL vs. MariaDB
Oracle bietet mit MySQL ein bewährtes Datenbank-Managementsystem, das sich seit mehr als 20 Jahren weltweit größter Beliebtheit erfreut. MySQL konnte sich auch unter Oracles Schirmherrschaft als eigenständiges Software-Projekt behaupten, das kontinuierlich gepflegt, weiterentwickelt und verbessert wird. Wer alle Möglichkeiten des MySQL-Ökosystems ausschöpfen möchte, stößt jedoch schnell an die Grenzen der kostenlosen Community Edition. Professionelle Tools für die Bereiche Monitoring, Backup, Load Balancing, Routing und Datenbanksicherheit bietet Oracle ausschließlich mit proprietärer Lizenz an.
MariaDB ist aus MySQL hervorgegangen, präsentiert sich heute jedoch als eigenständige Datenbank-Lösung für den Produktiveinsatz.
Dass sich MariaDB als ernstzunehmende Alternative zu MySQL etabliert hat, zeigt sich unter anderem daran, dass MariaDB seit Ende 2012 MySQL bei diversen Linux-Distributionen als Standardinstallation ersetzt hat – unter anderem bei Fedora, CentOS, openSUSE, Arch Linux, Debian und Red Hat Enterprise Linux. Weitere prominente Anwendungen und Web-Services, die auf MariaDB setzen, sind Google, Mozilla, die Wikimedia Foundation, TeamSpeak und XAMPP.
Hinter MariaDB steht das Kernentwicklerteam von MySQL, das auf große Unterstützung aus der Open-Source-Community zurückgreifen kann. Dies ermöglicht es der MariaDB-Fundation, quelloffene Alternativen für zahlreiche Enterprise-Erweiterungen des MySQL-Ökosystems bereitzustellen, die jedoch nicht alle dem Open-Source-Standard im Sinne von Bruce Perens und Eric S. Raymond entsprechen.
Die Entwicklung beider Software-Projekte wird in Zukunft zunehmend auseinanderstreben. War MariaDB bisher in erster Line als quelloffenes Drop-in-Replacement für MySQL gedacht, wird in Zukunft die Entwicklung exklusiver Features und Erweiterungen wie MaxScale und ColumnStore im Vordergrund stehen. Diese eröffnen neue Anwendungsmöglichkeiten heben MariaDB von MySQL ab. Ausschlaggebend für die Entscheidung „MySQL oder MariaDB“ wird dann nicht mehr die Reputation des Entwicklerteams sein, sondern die Frage, inwieweit sich das Funktionsspektrum des jeweiligen Datenbank-Managementsystems mit dem gewünschten Anwendungsszenario deckt.