MariaDB ist ein freies, relationales Open-Source-Datenbankmanagementsystem, das durch eine Abspaltung (Fork) aus MySQL entstanden ist. Das Projekt wurde von MySQLs früherem Hauptentwickler Michael Widenius initiiert, der auch die Storage-Engine Aria entwickelte, auf welcher MariaDB ursprünglich aufbaute (die Software-Schicht, welche die Basisfunktionalität der Datenbank enthält, d. h. das Erstellen, Lesen, Ändern, Löschen von Daten).
Name und Logo Der Name MariaDB geht auf die jüngere Tochter des Gründers Michael Widenius zurück. MySQL ist nach seiner anderen Tochter My benannt. Das Logo zeigt einen Seelöwen, den Monty Widenius nach einer Begegnung mit lebenden Seelöwen beim Schnorcheln mit seiner Tochter auf den Galápagosinseln wählte.
Geschichte
Entstehung und MySQL-Kompatibilität (2009–2012) MariaDB entstand 2009 durch Michael „Monty“ Widenius und weitere ursprüngliche MySQL-Entwickler, nachdem Oracle Corporation die Übernahme von Sun Microsystems angekündigt hatte, die seit 2008 MySQL besaß. Aus Sorge, Oracle könnte die Open-Source-Entwicklung einschränken, spalteten Widenius und Mitentwickler den Quellcode ab, um ihn unter der GNU General Public License frei verfügbar zu halten.
Die erste Version, MariaDB 5.1.38, wurde am 29. Oktober 2009 veröffentlicht. Zahlreiche MySQL-Ingenieure verließen Oracle und schlossen sich dem MariaDB-Projekt über Widenius' Unternehmen Monty Program Ab an. Die frühen Versionen spiegelten die MySQL-Versionsnummern wider (5.1, 5.2, 5.3, 5.5), um Drop-in-Kompatibilität zu signalisieren; MariaDB veröffentlichte dabei die Versionen 5.2 und 5.3, die MySQL selbst übersprungen hatte.
Die Wikimedia Foundation stellte im April 2013 ihre Produktivsysteme auf MariaDB um. Google und Mozilla gehörten ebenfalls zu den frühen prominenten Nutzern. openSUSE 12.3 war 2013 die erste große Linux-Distribution, die MariaDB als Standard-Datenbank auslieferte.
Eigenständige Entwicklung (2012–heute) 2012 kündigten die Entwickler an, MariaDB auf eine neue 10.y.x-Versionsnummerierung umzustellen – ein explizites Signal, dass das Projekt sich fortan unabhängig von MySQL weiterentwickeln würde.
Die 10.x-Serie führte unter anderem virtuell synchrones Multi-Primary-Clustering mit Galera Cluster und einen Oracle-Kompatibilitätsmodus ein. Mit Version 10.6 (2021) erschien die erste Version mit Langzeitunterstützung (LTS).
Die 11.x-Serie begann 2022. Ihre bedeutendste Neuerung war die native Vektorsuchfunktion, die 2024 eingeführt und mit dem LTS-Release 11.8 im Mai 2025 allgemein verfügbar wurde.
Die 12.x-Serie startete im August 2025 und führte neben dem etablierten LTS-Modell einen Rolling-Release-Track ein. Die Serie verzeichnet eine wachsende Zahl externer Beiträge; die Releases vom Mai 2026 verzeichneten eine Rekordzahl von Beiträgen außerhalb von MariaDB plc.
Eigenschaften
MySQL-Kompatibilität Die beiden wichtigsten Merkmale, die MariaDB und MySQL von PostgreSQL unterscheiden, sind die Verwendung von Threads anstelle von Prozessen sowie eine integrierte, umfassende Unterstützung für Replikationskonfigurationen, sowohl lokal als auch global. Dazu zählen geografisch verteilte Replikation und Multi-Primary-Konfigurationen über Galera Cluster.
Die MariaDB- und MySQL-Server sind keine monolithischen Datenbankserver wie z. B. PostgreSQL, sondern als Framework für „pluggable engines“ konzipiert. Seit MariaDB 10.2 verwenden beide standardmäßig dieselbe InnoDB-Engine, auf die in der Regel auch Applikationen zurückgreifen.
Die API und das Protokoll von MariaDB sind kompatibel mit denen von MySQL, einschließlich der Unterstützung nativer nicht blockierender Operationen und Fortschrittsberichte. Die meisten für MySQL entwickelten Konnektoren, Bibliotheken und Anwendungen funktionieren mit MariaDB. Die offiziellen MariaDB-Konnektoren stehen unter der LGPL-Lizenz, was ihre Nutzung in kommerziellen Anwendungen ohne Copyleft-Anforderungen erlaubt, und werden von vielen Betriebssystemdistributionen verwendet, um sich sowohl mit MariaDB als auch mit MySQL zu verbinden.
Das Speicherformat auf der Festplatte war bei MySQL und MariaDB bis MySQL 5.7 identisch. MySQL 8.0 änderte dieses Format – unter anderem durch den Wegfall der .frm-Schemadateien und ein geändertes Standard-Authentifizierungsprotokoll –, sodass die Datenübertragung zwischen MySQL 8.0 (oder neuer) und MariaDB einen logischen Export und eine anschließende Wiederherstellung erfordert. Die meisten benutzersichtbaren Funktionen teilen sich weitgehend dieselbe Syntax, was die Migration von MySQL zu MariaDB erleichtert. Die Replikation zwischen MySQL und MariaDB bleibt in beide Richtungen möglich.
Einige Funktionen weichen stärker voneinander ab, etwa das GTID-Replikationsformat und die Implementierung der JSON-Speicherung.
MariaDB integriert in allen Editionen, einschließlich der Community-Version, einen Thread-Pool, der Verbindungen über eine kleine Gruppe von Worker-Threads verwaltet statt über ein Modell mit einem Thread pro Verbindung. Der Thread-Pool von MySQL, lange Zeit ausschließlich der kommerziellen MySQL Enterprise Edition vorbehalten, ist seit Version 26.7.0 (Early Access) auch in der MySQL Community Edition verfügbar.
Oracle-Kompatibilität Ab MariaDB Server 10.3 wird die Kompatibilität zu Oracle-Datenbanken erhöht. Stored Procedures (Oracle PL/SQL) und Sequenzen können nun auch in der SQL-Syntax der Oracle-DB erstellt werden.
Transaktionen und Nebenläufigkeit MariaDB unterstützt vollständig ACID-konforme Transaktionen mit mehreren Isolationsstufen: Read Uncommitted, Read Committed, Repeatable Read und Serializable. Die Standard-Speicher-Engine InnoDB implementiert Multiversion Concurrency Control (MVCC), das gleichzeitige Lese- und Schreiboperationen ohne gegenseitige Blockierung ermöglicht. Ab MariaDB 11.8 ist der Snapshot-Isolation-Modus standardmäßig strikt, sodass Transaktionen stets eine konsistente Datenbankansicht ab ihrem Startzeitpunkt sehen.
Speicher-Engines MariaDB unterstützt eine pluggable Speicher-Engine-Architektur, bei der für jede Tabelle eine eigene Engine gewählt werden kann – ein breiteres Angebot als das InnoDB-fokussierte Standard-Setup von MySQL.
InnoDB – die Standard-Engine, die ACID-konforme Transaktionen, zeilenbasierte Sperren, Fremdschlüssel-Unterstützung und Crash-Recovery bietet. Aria – eine absturzsichere Engine, die intern für temporäre Tabellen und Systemtabellen genutzt wird; die Crash-Recovery erfolgt über ein Write-Ahead-Transaktionslog. MyRocks – basiert auf RocksDB, einem Log-Structured-Merge-Tree-Engine von Meta, mit höherem Schreibdurchsatz und besserer Kompression für schreibintensive Workloads. Heap/Memory – eine In-Memory-Speicher-Engine für schnellen temporären Datenzugriff; die Daten gehen bei einem Server-Neustart verloren. Spider – eine Sharding-Engine, die Daten über mehrere MariaDB-Instanzen verteilt und diese als einzelne Tabelle abfragbar macht; unterstützt Partitionierung und XA-Transaktionen. CONNECT – ermöglicht die Abfrage externer Datenquellen wie CSV, ODBC, JDBC und MongoDB als reguläre SQL-Tabellen. DuckDB – eine pluggable Engine, die DuckDBs spaltenorientierte Analyse-Engine direkt in den MariaDB-Server bringt.
Pluggable Architektur Über Speicher-Engines hinaus verfügt MariaDB über eine Reihe weiterer pluggbarer Schnittstellen. Zu den Plugin-Kategorien gehören:
Authentifizierungsmethoden Volltextsuche – einschließlich Mroonga für CJK-Sprachen Audit – Protokollierung von Datenbankaktivitäten für Sicherheit und Compliance Verschlüsselungsschlüsselverwaltung – einschließlich Integration mit HashiCorp Vault und AWS Key Management Monitoring- und Statistik-Plugins Passwortvalidierung Handler Socket – eine Hochgeschwindigkeits-API zur Nutzung von InnoDB-Tabellen als Key-Value-Speicher Kompressionsmethoden – bzip2, lz4, lzma, lzo und snappy Pluggable Datentypen – darunter inet, json, uuid und mysql_json Benutzerdefinierte Funktionen – ladbar in C, C++ oder Rust; sowohl einfache als auch Group-by-Funktionen werden unterstützt
Plugins können zur Laufzeit geladen oder ausgetauscht werden, ohne den Server neu zu kompilieren. Ein kuratierter Katalog von Plugins und anderen MariaDB-kompatiblen Tools wird von der MariaDB Foundation als MariaDB Server Ecosystem Hub gepflegt.
SQL-Sprache MariaDB unterstützt Standard-SQL einschließlich gespeicherter Prozeduren, Funktionen, Trigger, Views, Fensterfunktionen und des JSON-Datentyps mit umfangreichen Funktionen zur Dokumentspeicherung und -abfrage.
Systemversionierte Tabellen, konform zum SQL:2011-Standard, protokollieren automatisch die vollständige Änderungshistorie jeder Zeile. Historische Daten können mit der FOR SYSTEM_TIME AS OF-Klausel zum Zustand einer Tabelle zu einem beliebigen vergangenen Zeitpunkt abgefragt werden – ohne manuell gepflegte Audit-Tabellen oder Trigger.
Der INSTANT-Algorithmus für ALTER TABLE ermöglicht das Hinzufügen, Entfernen und Ändern von Spaltenstandards in Mikrosekunden, da nur Metadaten aktualisiert werden, ohne die Tabelle neu aufzubauen. Seit MariaDB 11.2 laufen nicht-sofortige Schema-Änderungen standardmäßig nicht-blockierend, sodass gleichzeitige Lese- und Schreibzugriffe während des Vorgangs möglich sind.
Replikation und Hochverfügbarkeit MariaDB unterstützt Primary-Replica-Replikation über ein Binary Log, wahlweise asynchron oder halbsynchron. Multi-Source-Replikation ermöglicht es einem Replikat, Änderungen von mehreren Primary-Servern gleichzeitig zu empfangen; parallele Replikation reduziert den Replikationsrückstand durch gleichzeitige Anwendung von Änderungen.
Galera Cluster ist eine virtuell synchrone Multi-Primary-Replikationslösung, die direkt in den MariaDB-Server integriert ist. Sie ermöglicht Schreibzugriffe auf beliebige Knoten des Clusters bei gleichzeitiger Konsistenz über alle Knoten hinweg. Bis Version 10.0 war die Galera-Unterstützung als separate Binärversion erhältlich; seit MariaDB Server 10.1 ist sie fest integriert.
Analytik MariaDB unterstützt analytische Workloads durch ColumnStore, eine spaltenorientierte Speicher-Engine, die Daten spaltenweise statt zeilenweise ablegt. Dies reduziert den I/O-Aufwand bei Aggregationsabfragen und macht ColumnStore geeignet für Data-Warehouse- und Business-Intelligence-Anwendungen. ColumnStore kann gemeinsam mit relationalen Engines eingesetzt werden, sodass transaktionale und analytische Speicherung in einer Datenbank kombiniert werden können.
Analytische SQL-Funktionen wie Fensterfunktionen und Common Table Expressions stehen über alle Speicher-Engines hinweg zur Verfügung. Die MariaDB-Enterprise-Edition von MariaDB plc kann zudem Exasol zur Beschleunigung analytischer Abfragen einsetzen.
Sicherheit MariaDB unterstützt rollenbasierte Zugriffskontrolle (RBAC), bei der Berechtigungen in benannten Rollen zusammengefasst und an Benutzer vergeben werden können, was die Rechteverwaltung in großen Deployments vereinfacht.
Die Authentifizierung erfolgt über eine Plugin-Architektur, die mehrere Methoden unterstützt: mysql_native_password, ED25519 mittels elliptischer Kurven-Kryptografie sowie PARSEC (Password Authentication using Response Signed with Elliptic Curve), eingeführt in MariaDB 11.6. MariaDB unterstützt zudem Tabellenverschlüsselung und die Integration mit HashiCorp Vault zur Schlüsselverwaltung.
Konnektivität MariaDB stellt offizielle Konnektoren für C, C++, Java, Python, Node.js, ODBC und R2DBC bereit, lizenziert unter der LGPL, was die Nutzung in kommerziellen Anwendungen ohne Copyleft-Anforderungen ermöglicht. MariaDB verwendet das MySQL-Client-Server-Protokoll und gewährleistet damit Wire-Level-Kompatibilität mit MySQL-Client-Bibliotheken. MariaDB-Server können auch mit MySQL Workbench gewartet und administriert werden.
KI und Vektorsuche