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.

Fakt

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.

Tipp

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.

Hinweis

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.

Hinweis

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.

Tipp

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:

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.

Hinweis

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).

Zur Anzeige dieses Videos sind Cookies von Drittanbietern erforderlich. Ihre Cookie-Einstellungen können Sie hier aufrufen und ändern.

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.

Hinweis

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.

Fakt

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.