[AdSense-A]
Viele haben bereits den Namen MariaDB irgendwo gelesen oder gehört, sei es auf Webseiten von beliebten Zeitungsverlagen wie heise oder Golem. Aber was steckt eigentlich hinter MariaDB? In diesem Artikel handelt es sich um mariadb vs mysql, die Vorteile von MariaDB wie die Nachteile.
MariaDB ist eine relationale Datenbank, die aus einem Fork von MySQL entstanden ist, dementsprechend ist es (fast) vollständig kompatibel zu MySQL. Jetzt stellt
sich natürlich die Frage warum nur fast? Darauf werde ich in diesem Artikel später noch eingehen. MariaDB unterstützt im Prinzip alle Statements die MySQL auch unterstützt, schließlich ist es ein Fork dessen.
MariaDB lauscht sogar auf dem gleichen Port (3306) auf eingehende Verbindungen und verhält sich nach außenhin betrachtet identisch zu MySQL.
Einzelne größere Firmen sind mittlerweile auch bereits von MySQL auf MariaDB umgestiegen, dazu gehören bekannte Firmen wie:
– google
(http://www.zdnet.de/88169832/datenbanken-google-steigt-von-mysql-auf-mariadb-um/)
– wikipedia
(http://www.zdnet.com/wikipedia-moving-from-mysql-to-mariadb-7000008912/
http://www.infoworld.com/t/open-source-software/wikipedia-dumps-mysql-hooks-mariadb-217820)
Sogar einzelne Linux Distributionen wollen zukünftig statt MySQL, MariaDB standardgemäß in Ihren Repositorys anbieten:
– Fedora
(http://www.golem.de/news/fedora-mariadb-soll-mysql-ersetzen-1301-97069.html)
– OpenSuse
(http://www.pro-linux.de/news/1/19380/opensuse-umzug-auf-mariadb-bereits-vollzogen.html)
Nun stellt sich natürlich die Frage, warum größere Firmen und Distributionen von der etablierten Software “MySQL” auf “MariaDB” wandern. Nun dies ist im Prinzip recht simpel zu begründen.
[AdSense-A]
Vorteile von MariaDB zu MySQL
1. MariaDB unterstützt im Vergleich zu MySQL mittlerweile wesentlich mehr Engines (SphinxSE, Aria, FederatedX, TokuDB, Spider, ScaleDB und etc.), und ist von InnoDB auf xtraDB gestiegen, was quasi ein equivalent zu InnoDB darstellt, nur wesentlich performanter ist.
2. MariaDB entwickelt sich im Vergleich zu MySQL kontinuierlicher fort. Updates werden wesentlich schneller als bei MySQL an die Endanwender durchgereicht, an neuen Features wird durchgängig gearbeitet und MariaDB ist ein vollständiges opensource Projekt, wo unter anderem der Bugtracker ins Detail eingesehen werden kann.
3. MariaDB bietet auch für den kommerziellen nutzen eine Clusterdatenbank an, welche unter anderem auch eine Multi-Master-Replikation ermöglicht. Jeder kann sich dessen frei bedienen und muss nicht auf eine MySQL-Enterprise Version zurückgreifen.
4. MariaDB wurde auf performance optimiert, und ist bei größeren Mengen an Datensatzen um einiges performanter als MySQL, zudem bietet es eine elegante Migration von anderen Datenbanksystemen auf MariaDB.
In erster Linie klingt alles von MariaDB ziemlich gut und Vorteilhaft für den eigenen Einsatz von MariaDB, bzw. dem Ersatz zu MySQL. Es hat den Schein, dass MariaDB sich intensive Mühe gibt ein relationales DBMS dem Markt kostenlos bereitzustellen, welches nicht all zu Anfällig auf Fehler sein soll, und dementsprechend auch performanter sein soll als MySQL.
Nachteile von MariaDB zu MySQL
Nun stellt sich uns die Frage, ob ein Umstieg auf MariaDB für uns probemlos verlaufen kann und welche Risiken wir in Kauf nehmen müssten?
Nun MariaDB verspricht auf ihrer Webseite viel, bzgl. einer einfachen Migration von MySQL auf MariaDB. Eine Migration soll schnell und “Problemlos” verlaufen und somit soll es nur ein Katzensprung auf MariaDB sein.
1. Eine nachträgliche Migration von MariaDB zurück auf MySQL ist seit dem letzten Release (5.5.36) nicht mehr möglich. Da sich der neue Release an der bestehenden Version 10 orientiert, und eine vollständige Überarbeitung von MariaDB bedeutet, damit ist MariaDB nun ein eigenständiges DBMS und nicht mehr nur ein Fork von MySQL.
[AdSense-A]
2. Bei einem neuen Release werden die entsprechenden dazugehörigen Libraries (Jedenfalls für Debian) nicht rechtzeitig bereitgestellt, womit ein Upgrade auf eine neuere Version aufgrund von Abhängigkeiten fehl schlägt.
3. Bei der Verwendung von Pam_mysql und einem darauf folgenden Umstieg auf MariaDB, wird die pam_mysql Library von bestehenden Applikationen als Defekt angesehen, da pam_mysql die libmysqlclient18 library verwendet. Die es allerdings unter dem neusten Release von MariaDB nicht mehr gibt, stattdessen führt MariaDB nun seine eigene libmariadbclient18 Library. Somit ist die Verwendung von pam_mysql nur möglich, wenn man sich eine entsprechende eigene Library dafür schreibt (Tutorials dafür finden sich auf der offiziellen MariaDB Homepage).
4. Eine Clusterversion von MariaDB gibt es zwar auch, sogar als freie Multi-Master-Replikation, allerdings selbst bei der Verwendung von 3 Nodes, führt es regelmäßig zu einem Split-Brain, womit die DBMS’s zwar noch weiterhin (man könnte meinen tadellos) weiterlaufen, allerdings treten häufiger dann SQL-Fehler auf, z.B. dass SELECT unbekannt ist. Ebenso ist die Konfiguration eines solchen Clustern mit vielerlei Problemen verbunden, die während der Konfiguration auftreten können. Eine große Auswahl an Einträgen zur Problembehebung findet sich dazu nicht. Die Dokumentation in dieser Hinsicht ist recht mager, und man ist auf sich alleine gestellt. Hinzu kommt die Problematik nach einem Split-Brain, den Cluster wieder korrekt in Gang bringen ist recht schwierig, ohne jeweilige Vorkenntnisse zu MariaDB. Selbst wenn ein Update für MariaDB vorhanden ist, hängt sich ein Paketmanager beim Starten von MariaDB auf und behindert somit, den Upgrade weiterer Pakete.
Fazit
Im Endeffekt bleibt es einem selbst überlassen, ob man MariaDB gegen MySQL tauschen möchte. Die Performance von MariaDB ist ein ziemlich guter Aussagepunkt um auf MariaDB umzusteigen, wenn die Performance für eine Webseite / Anwendung höchste Priorität hat, aber auch dann muss man mit den Risiken des neuen Setups leben können, was manchmal recht schwierig sein kann, da unerwartete Probleme auftreten, die den produktiven Betrieb eines solchen Setups in Gefahr bringen können. Wenn man mit den damit verbundenen Risiken leben kann, so ist ein Umstieg auf MariaDB durchaus sinnvoll.
UPDATE 03.2018:
Mittlerweile hat sich MariaDB sehr gebessert, trotzdem Split Brains sind in Master Master Hierarchien nicht ausgeschlossen. Performancetechnisch hat sich vieles getan. Aber nach wie vor sind Probleme kennzunehmen in einer Master Master Umgebung.
[AdSense-A]
Sehr informativ und objektiv.
Finde diesen Beitrag sehr hilfreich.
Im Bereich der ERP-Software wird die Datenbank nur alle paar Jahre gewechselt.
Da hier Performance das A & O ist, werde ich mariaDB testen.
Ich finde Ihren Beitrag auch sehr informativ, und habe in diesem Zusammenhang eine Frage:
Vorab – ich habe mir einen ODROID-Minirechner zugelegt (RaspberryPi on steroids). In erster Linie um meine ziemlich vergammelten Linux-Kenntnisse wieder aufzufrischen und das Gerät headless für verschiedene Überwachungen im Netzwerk einzusetzen.
MySQL gilt als sehr ressourcenschonend und wird auch für den ODROID empfohlen. MariaDB gilt, wie Sie schreiben, als besonders performant, was nach meiner Erfahrung gerne etwas stärkere (RAM) Geräte erfordert.
Wie sinnvoll ist es auf einem ODROID MariaDB zu verwenden oder ist da MySQL doch besser?
Herzlichen Dank
Kahner
Guten Abend,
ich denke es ist durchaus abhängig davon, was Sie mit Ihrem Raspberry genau anfangen wollen. Die Überwachung von Netzwerkkomponenten kann auf mehreren Wegen erfolgen, sei es Nagios, Cacti, Observium o.ä. In wie weit ein RPi für MariaDB verwendbar ist, kann ich leider nicht beurteilen. Allerdings sollten Sie sicherstellen, dass alle notwendigen Libraries und Pakete für Ihre Zwecke bereitstehen. Zusätzlich dazu würde ich persönlich erst einmal ein Benchmarking zwischen MariaDB und MySQL durchführen. Letztlich denke ich, wird aufgrund der geringen Leistung eines RPi kein besonderer Unterschied bemerkbar sein. Hinzukommend, nehme ich an, dass die jeweiligen Intervalle der Überwachung (ich nehme einmal an SNMP) der verschiedenen Netzwerkkomponenten vermutlich sowieso nicht in Echtzeit erfolgen wird und dahingehend die Performance des DBMS keine all zu große Rolle spielt.
Herzlichen Dank für Ihre ausführliche Antwort.
Zum Hintergrund:
mein ODROID nenne ich nur deswegen RPi, weil dieser deutlich bekannter ist und ich weniger Erklärungsbedarf habe :-). Konkret ist es ein ODROID-U3 mit 2GB DDR2 RAM einem ARMs Cortex-A9-Kern 1,7 GHz.Quadcore, FullHD via HDMI-Ausgang u.a.
Das ist schon deutlich mehr und gut für kleinere anspruchsvolle Aufgaben einsetzbar. (Streamen von HD-Filmen auf TV etc.)
Ihre Hinweise sind gut, allerdings habe ich da eher ein Lern- als ein konkretes Überwachungsinteresse, von einigen lästigen regelmäßigen Versuchen an meinem WLAN-Router mal abgesehen. Bzgl. der Verfügbarkeit mache ich mir weniger Gedanken, da im monatlichen Magazin bereits entsprechende Projekte stehen. Allerdings sind deren Betreiber deutlich erfahrener als ich.
So wie ich Sie verstanden habe, würden Sie selbst auf einem RPi prinzipiell keine Probleme sehen (grundsätzliche Performance einmal abgesehen). Da dies den Kern meiner Frage beantwortet – läuft MariaDB unter den ungefähr gleichen Minimalanforderungen wir MySQL – habe ich mich für MariaDB entschieden.
Herzlichen Dank
Kahner
Nun also konkret genommen würde ich MariaDB nicht zwangsläufig empfehlen. Allerdings sollten Sie bei dem Einsatz von MariaDB erst einmal prüfen ob die für ihre Zwecke benötigten Libraries überhaupt bereits für MariaDB vorhanden sind.
Punkt 2 der Positivliste sehe ich auch eher als Nachteil. Häufige Updates, noch dazu mit neuen Features, das bedeutet in der Regel mehr Bugs, mehr Stress und mehr Anpassungsarbeit. Keine gute Partie, wenn ich mir überlege dass ich bei Debian stable und einem funktionierenden System in der Regel drei bis vier Jahre Ruhe habe, bis ich die kritischen Teile wieder anfassen muss.
Der Artikel ist nicht wirklich hilfreich bei der Entscheidung für eine der Datenbanken. Sätze wie “welches nicht all zu Anfällig auf Fehler sein soll, und dementsprechend auch performanter sein soll als MySQL.” sind nichtssagendes blabla: Ist ja wohl bei einer Datenbank für den Produltivbetrieb zu erwarten, dass sie “nicht all zu anfällig auf Fehler” ist! Warum aber ist sie dann “dementsprechend” performanter? Es ist doch eher genau das Gegenteil: Auf Performanz getrimmte Software ist eher fehlerbehaftet als Programme, bei denen Robustheit obertse Priorität hat (und dazu gehören Datenbanken).
Das Fazit sagt irgendwie alles: “Im Endeffekt bleibt es einem selbst überlassen, ob man MariaDB gegen MySQL tauschen möchte. ” Ist ja toll, dankeschön
g
Der Artikel soll nicht eines der DBMS präferieren. Die Entscheidung liegt bei einem selbst und letztlich dem Einsatzziel. Daher sind in diesem Artikel die Vor- sowie Nachteile aufgeschildert von beiden DBMS. Es gibt keine Allzweck-Lösung, sondern die Lösung ist abhängig vom Einsatzgebiet.
ich betreibe nur noch ehrenamtlich Web-Projekte mit MySQL+PHP. Vor 15 Jahren erarbeitete ich mir ein wiederverwertbares MySQL-0815-Gerüst an, das ich für alle Projekte nutz(t)e. Das freie MySQL gilt mittlerweile als unsicher (lt. BSI). Ich denke an eine Umstellung auf ein “sicheres DB-System”. SQL oder NoSQL. MariaDB wurde von ca. 2 Jahren noch als NoSQL-System beschrieben ??!!?! Im ersten Schritt wechselte ich zur Erfassung pb persönlicher Daten (nach BDschG/EUVO) auf SSL-Server; durch wechseln der Domains im Erfassungsodus.
Meine Fragen:
1.) wie sieht es bzgl einer one-script Optionen verteilter DBs aus (splitten von pb-Daten auf mehrere MySql/maria-Datenbanken ? (open1/close1, open2/close2 beim Speichern viceversa bei, Lesen)
A) auf dem selben Host B) bei verteilten Hosts ?
2.) welche (kostenlose) NoSQL-Datenbank wäre zum problemlosen (migrierfähigen) Wechsel zu empfehlen.
3.) wäre ein extra LOGIN-Server zu empfehlen ?
Grund: ich denke ab 2018, nach Umsetzung der EU-Vorgaben, (und jetzigem, vielfach unbeachteten) aktuell geltenden DSchRecht dürfen personenbezogene Daten nicht außerhalb die EU TRANSFERIERT — und erst recht nicht — außerhalb der EU GESPEICHERT werden !! Ab 2018 würde es 500.T euro pro Einzelfall kosten können.
Ich habe DERZEIT für die Daten-Erfassung (EDV) einen DE-Hoster und für Webseiten (Angebote mit aussschließlich Leserechten) einen US-Hoster, der aufgrund der EU-Gesetzeslage derzeit für Europäer in GB seine Niederlasung hat — aber auch durch den BREXIT bedingt – vermutlich nach Irland wechseln wird.
PS: ich war ab 1990 beruflich als IT-Fachmann tätig . Seit 15 Jahren bin ich hauptberuflich Sozialarbeiter.
INTEGRATION, MIGRATION, QM — im IT-, dann im Personal- und jetzt im Sozialbereich — Maschine –> Mensch
Sind MariaDB xtradb wirklich so viel performanter? Bei allen möglichen Benchmarks die ich online finde sind die Unterschiede nur Marginal. MariaDB schlägt MySQL meist und unter bestimmten Vorraussetzungen wesentlich, multi threaded mit querycache etc..
Z.B. das hier https://mariadb.org/performance-evaluation-of-mariadb-10-1-and-mysql-5-7-4-labs-tplc/
FYI: Der verlinkte Benchmark ist 4 Jahre alt.
Der Beitrag selbst ist 4 Jahre alt.
Schon weil man bei Oracle nie weis woran man ist und was denen als nächstes einfällt sollte man wechseln. Für mich ist Oracles Lizenzpolitik ein nicht zu verachtender Punkt den man hier noch erwähnen sollte.