Was ist der Unterschied zwischen MariaDB und MySQL?

MySQL und MariaDB sind beide Open-Source-Datenbanktechnologien. Sie können sie verwenden, um Daten in einem tabellarischen Format mit Zeilen und Spalten zu speichern. MySQL ist die am weitesten verbreitete Open-Source-Datenbank. Und es ist die primäre relationale Datenbank für viele beliebte Websites, Anwendungen und kommerzielle Produkte. MariaDB ist eine modifizierte Version von MySQL. MariaDB wurde vom ursprünglichen Entwicklungsteam von MySQL aufgrund von Lizenz- und Vertriebsproblemen nach der Übernahme von MySQL durch die Oracle Corporation entwickelt. Seit der Übernahme haben sich MySQL und MariaDB unterschiedlich entwickelt. MariaDB verwendet jedoch die Daten- und Tabellendefinitionsdateien von MySQL und verwendet auch identische Client-Protokolle, Client-APIs, Ports und Sockets. Dies soll MySQL-Benutzern den problemlosen Umstieg auf MariaDB ermöglichen.

Lesen Sie mehr über MySQL »

Was sind die Ähnlichkeiten zwischen MariaDB und MySQL?

MySQL ist ein relationales Datenbankmanagementsystem, das 1995 veröffentlicht wurde. 2009 veröffentlichten Entwickler MariaDB als Code-Fork von MySQL 5.1.38.

Da MariaDB aus MySQL hervorgegangen ist, weisen die beiden relationalen Datenbankverwaltungssysteme viele Ähnlichkeiten auf. MariaDB hat beispielsweise die Struktur, die Namenskonventionen und die Datendefinitionsdateien von MySQL beibehalten. Darüber hinaus unterstützt es alle MySQL-Konnektoren, -Verbindungen und -Ports. Ihr MySQL-Clientpaket funktioniert unverändert mit MariaDB.

Als nächstes geben wir einige weitere Ähnlichkeiten an.

ACID-Compliance

Atomizität, Konsistenz, Isolation und Haltbarkeit (ACID) sind die vier Kernprinzipien, die die Zuverlässigkeit von Datenbanktransaktionen gewährleisten. Sowohl MySQL als auch MariaDB halten an diesen Prinzipien fest. Durch die Einhaltung von ACID wahren beide Datenbanken die Genauigkeit und Integrität der Daten.

SQL-Kompatibilität

MySQL und MariaDB sind relationale Datenbanken, die Daten in Tabellen organisieren. MariaDB und MySQL verwenden beide SQL, um Daten zu verwalten und abzufragen. Sie können in diesen Systemen viele der gleichen Befehle verwenden.

Mehr über SQL erfahren »

Sowohl MySQL als auch MariaDB speichern Daten als relationale Tabellen mit SQL-Schnittstelle.

Open-Source-Software

Als relationale Open-Source-Datenbankverwaltungssysteme sind MySQL und MariaDB beide gemeinsame Projekte, die aus einer Entwickler-Community hervorgegangen sind. Ihr Quellcode ist der Öffentlichkeit zugänglich.

Die MySQL-Datenbank verfügt über eine vollständige Open-Source-Version, die unter der General Public License (GPL) veröffentlicht wurde. Es gibt auch eine kostenpflichtige Unternehmensversion mit zusätzlichen Funktionen und Support. MariaDB ist vollständig Open Source auf GitHub.

Sicherheit

MySQL und MariaDB bieten ähnliche grundlegende Sicherheitsfunktionen. Sie bieten Verschlüsselung, Zugriffskontrollmechanismen, Benutzerauthentifizierung und -autorisierung sowie SSL/TLS-Unterstützung. Sie ermöglichen auch eine differenzierte Zugriffskontrolle, sodass Sie verschiedenen Benutzern unterschiedliche Berechtigungsstufen zuweisen können.

Hauptunterschiede: MariaDB vs. MySQL

Seit dem Forking von MySQL hat MariaDB seine Fähigkeiten kontinuierlich erweitert. Einige dieser Änderungen haben zu Unterschieden in den Kernfunktionen, Fähigkeiten und Leistungen geführt.

Hier sind die wesentlichen Unterschiede zwischen MySQL und MariaDB.

Handhabung von JSON-Daten

MariaDB und MySQL unterstützen das Abrufen und Speichern von JSON-Daten. Sie speichern jedoch JSON-Berichte auf unterschiedliche Weise. MariaDB speichert JSON-Berichte in Zeichenketten, während MySQL sie als binäre Objekte speichert.

MySQL und MariaDB unterstützen auch nicht beide JSON-Funktionen. MariaDB unterstützt JSON_QUERY und JSON_EXISTS , MySQL jedoch nicht. Ebenso unterstützt MySQL den nativen JSON-Datentyp JSON_TABLE, den MariaDB nicht unterstützt.

MariaDB unterstützt jedoch seit Version 10.2 nur JSON-Datentypen. Der JSON-Datentyp, den MariaDB verwendet, ist ein Alias für LONGTEXT.

Funktionalität

Da ihre Entwicklungspfade unterschiedlich waren, bieten MariaDB und MySQL jetzt leicht unterschiedliche Funktionen.

MySQL bietet beispielsweise dynamische Spalten, mit denen Sie mehrere Datenwerte in einer einzigen Spalte definieren und die Spalte mit Funktionen modifizieren können. Dynamische Spalten ermöglichen die Datenmaskierung, um vertrauliche Informationen zu schützen.

Im Gegensatz dazu unterstützt MariaDB unsichtbare Spalten in Datenbankansichten. Unsichtbare Spalten werden nicht aufgeführt, wenn ein Benutzer eine SELECT-Anweisung ausführt oder in einer INSERT-Anweisung nach einem Wert fragt.

Benutzerauthentifizierung

MySQL verfügt über die Komponente validate_password, mit der Sie die Passwortsicherheit erhöhen können.

MariaDB hat dies standardmäßig nicht, bietet aber drei Validator-Plugins. Sie können diese Passwort-Validator-Plugins verwenden, um Passwörter besser zu schützen. In Version 10.4 führte MariaDB das ed25519-Authentifizierungs-Plugin ein, um die zuvor verwendete SHA-1-Authentifizierung zu ersetzen. Dies hilft, Benutzer zu authentifizieren und Passwörter sicher zu speichern. 

Verschlüsselung

MySQL und MariaDB verschlüsseln beide Daten im Speicher und während der Übertragung.

MySQL ermöglicht es Admin-Benutzern, Redo- und Undo-Protokolle zu konfigurieren und zu verschlüsseln, temporäre Tablespace- oder Binärprotokolle werden jedoch nicht verschlüsselt.

Andererseits unterstützt MariaDB die Verschlüsselung von binären Protokollen und die Verschlüsselung temporärer Tabellen. 

Thread-Pooling

Thread-Pooling ermöglicht es einer Datenbank, ihre Ressourcen zu optimieren, indem neue Verbindungen mit bereits vorhandenen Threads gekoppelt werden. Eine hohe Threadpool-Kapazität ist für Anwendungen von entscheidender Bedeutung, die skalieren und Tausende von Benutzern gleichzeitig bedienen möchten.

MariaDB enthält Thread-Pooling in seinem Threadpool-Plugin, das Teil der Community-Edition ist. MariaDB bietet die Möglichkeit, über 200.000 Verbindungen gleichzeitig zu verwalten.

MySQL hat in seiner Unternehmensversion ein Threadpool-Plugin. Es kann jedoch nicht so viele Verbindungen wie einmal verarbeiten wie MariaDB.

Wann verwendet man MariaDB vs. MySQL

MariaDB ist skalierbarer und bietet im Vergleich zu MySQL eine höhere Abfragegeschwindigkeit. Dadurch eignet es sich gut für die Verwaltung großer Daten. In MariaDB finden Sie auch weitere Funktionen, die MySQL nicht hat, wie Sequenzspeicher-Engines und virtuelle Spalten. Sie können auch mehrere Engines in einer Tabelle verwenden.

MySQL gibt es jedoch schon viel länger als MariaDB. Einige Organisationen bevorzugen den Unternehmenssupport, den MySQL bietet.

Als Nächstes geben wir einige Überlegungen zur Auswahl zwischen den beiden Datenbanken an.

Speicher-Engines

In Datenbankmanagementsystemen sind Speicher-Engines eine Komponente, die beim Abrufen, Aktualisieren und Speichern von Daten in der Datenbank hilft. Die Speicher-Engine, mit der Sie arbeiten möchten, könnte Ihre Entscheidung beeinflussen.

Sie können mehrere Speicher-Engines sowohl in MySQL als auch in MariaDB verwenden, aber MySQL bietet weniger Optionen. Zu den Speicher-Engines auf MySQL gehören InnoDB, CSV, Federated, MyISAM, Merge und Federated.

MariaDB unterstützt einige Speicher-Engines, die MySQL nicht unterstützt, wie XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra und Connect.

Lizenz

MariaDB und MySQL haben beide Versionen der General Public License (GPL). MariaDB steht vollständig unter der GPL-Autorisierung, während MySQL über zwei verfügbare Lizenzen verfügt – öffentliche und private.

Die private MySQL-Enterprise-Edition-Lizenz ermöglicht zusätzliche Funktionen wie Thread-Pooling, die die Abfragegeschwindigkeit beschleunigen. Unternehmen, die ihre MySQL-Software vertreiben möchten, ohne den Quellcode unter der GPL zu verteilen, bevorzugen möglicherweise die MySQL Enterprise Edition.

Oracle-Datenbankkompatibilität

Oracle-Datenbankkompatibilität ist die Fähigkeit der Oracle-Datenbank, mit einer Anwendung zu arbeiten, die mit MariaDB- oder MySQL-Datenbanken erstellt wurde.

Wenn Ihr Unternehmen bereits Oracle-Datenbankprodukte verwendet, bevorzugen Sie möglicherweise MySQL. Die Oracle-Datenbank bietet einen spezifischen Kompatibilitätsmodus für die für MySQL spezifische SQL-Syntax. MySQL unterstützt jedoch nicht PL/SQL, die von Oracle entwickelte anwendungsorientierte Sprache.

Seit Version 10.3 unterstützt MariaDB PL/SQL. MariaDB bietet auch einen Oracle-Syntaxkompatibilitätsmodus, um Oracle-Datenbankanwendungen ohne Änderung auszuführen.

Geschwindigkeit und Leistung

Viele Jahre lang übertraf MySQL MariaDB in mehreren Anwendungsfällen. Beispielsweise könnte MySQL 8.0 mehr Abfragen pro Sekunde verarbeiten als die Version 10.3 von MariaDB. MariaDB hat in den letzten Jahren jedoch viele Verbesserungen vorgenommen.

Derzeit ist MariaDB schneller, was die Ausführung von Abfragen und Replikationsaufgaben angeht. Möglicherweise bevorzugen Sie MariaDB für leistungskritische Workloads.

Kannst du von MySQL zu MariaDB wechseln?

Ja, Sie können mit minimalem Aufwand von MySQL zu MariaDB wechseln. MariaDB ist so konzipiert, dass es abwärtskompatibel mit MySQL ist. Das bedeutet, dass für MySQL geschriebene Anwendungen und Skripte ohne nennenswerte Änderungen mit MariaDB funktionieren sollten. 

Bis MariaDB 5.5 folgte MariaDB Server dem MySQL-Versionsnummerierungsschema und zielte auf Drop-In-Kompatibilität mit derselben Hauptversion von MySQL ab. Im Jahr 2012 variierte die Versionsnummerierung von MariaDB Server, um der wachsenden Anzahl von Funktionen Rechnung zu tragen, die in MySQL nicht verfügbar waren. MariaDB veröffentlichte 10.0, während MySQL 5.6 veröffentlichte.

MariaDB Server bietet weiterhin ein hohes Maß an Kompatibilität mit MySQL. Upgrades von alten MySQL-Versionen auf sogar die neuesten MariaDB-Versionen werden durch ein direktes Upgrade unterstützt.

Der Wechsel von MySQL zu MariaDB folgt einem Standardinstallationsverfahren. Sie führen das Tool mysql_upgrade aus, um die Rechte und Ereignistabellen der MySQL-Datenbank mit MariaDB-Äquivalenten zu aktualisieren.

Zusammenfassung der Unterschiede: MySQL vs. MariaDB

 

MySQL

MariaDB

JSON

MySQL speichert JSON-Berichte als binäre Objekte.

MariaDB speichert JSON-Berichte in Zeichenketten. Der JSON-Datentyp von MariaDB ist ein Alias für LONGTEXT.

Oracle-Datenbankkompatibilität

MySQL hat ein hohes Maß an Kompatibilität, unterstützt jedoch PL/SQL nicht.

MariaDB hat ein hohes Maß an Kompatibilität und unterstützt PL/SQL seit Version 10.3.

Geschwindigkeit und Leistung

MySQL ist bei der Replikation und Abfrage etwas langsamer als MariaDB.

MariaDB ist bei Replikation und Abfrage etwas schneller als MySQL.

Funktionalität

MySQL unterstützt Super-Schreibschutz-Funktionen, dynamische Spalten und Datenmaskierung.

MariaDB unterstützt unsichtbare Spalten und temporären Tabellenraum.

Authentifizierung

MySQL hat die Komponente validate_password.

MariaDB hat drei Passwort-Validator-Plugins.

Verschlüsselung

MySQL-Datenbanken verwenden InnoDB und AES, um gespeicherte Daten zu verschlüsseln.

MariaDB unterstützt temporäre Protokollverschlüsselung und binäre Protokollverschlüsselung.

Speicher-Engines

MySQL hat weniger Speicher-Engines als MariaDB.

MariaDB hat mehr Speicher-Engines als MySQL und kann mehrere Engines in einer Tabelle verwenden.

Lizenz

MySQL hat zwei Versionen: MySQL Enterprise Edition und eine GPL-Version.

MariaDB steht vollständig unter GPL.

Thread-Pooling

MySQL verfügt in seiner Enterprise Edition über Thread-Pooling.

MariaDB kann über 200.000 Verbindungen gleichzeitig verwalten, was mehr als MySQL ist.

Wie kann AWS Ihre MySQL- und MariaDB-Anforderungen unterstützen?

Amazon Relational Database Service (Amazon RDS) umfasst eine Reihe vollständig verwalteter Services, die das Einrichten, Betreiben und Skalieren von Datenbanken in der Cloud vereinfachen.

Wählen Sie aus sieben beliebten Engines, von denen zwei für MySQL und MariaDB bestimmt sind. Amazon RDS für Maria DB unterstützt die MariaDB-Server-Versionen 10.3, 10.4, 10.5 und 10.6. Amazon RDS für MySQL unterstützt derzeit die MySQL Community Edition, Versionen 5.7 und 8.0. 

Cloud-Überwachungsprotokolle

So können Sie von der Verwendung von Amazon RDS profitieren:

  • Stellen Sie skalierbare MariaDB- und MySQL-Cloud-Datenbanken in wenigen Minuten mit kosteneffizienter und anpassbarer Hardwarekapazität bereit
  • Verwenden Sie vorhandenen Code, Anwendungen und Tools ohne Änderungen
  • Greifen Sie für erweiterte Datenbanküberwachung auf über 50 CPU-, Arbeitsspeicher-, Dateisystem- und Festplatten-I/O-Metriken zu
  • Profitieren Sie von verbesserter Verfügbarkeit und Stabilität, um die Kapazitätsengpässe einer einzelnen Datenbankinstance flexibel zu skalieren

Beginnen Sie mit MySQL und MariaDB auf AWS, indem Sie noch heute ein Konto erstellen.

Nächste Schritte mit AWS

Mit der Entwicklung mit PostgreSQL beginnen