Shopware 6 - MariaDB vs. MySQL

Hallo Community,

wann sollte man für Shopware 6 als Datenbank MariaDB und wann MySQL nutzen?

MfG
sven-sw

1 „Gefällt mir“

Abgesehen davon, dass der verlinkte Artikel gut 2 Jahre alt ist - was schließt Du denn selbst aus dem doch sehr ausführlichen Artikel?

Bzw. hast Du die Entwicklung der im Artikel fehlenden 2 Jahre beobachtet?

Das habe ich nicht, genau aus diesem Grund frage ich.

Welche Variante setzen die Shopware 6 Entwickler privat ein?

Da bin ich gespannt, ob Du von den Entwicklern da eine Antwort bekommst.
Die sind recht selten aktiv im Forum, bzw. so gut wie gar nicht.

@mr.unschuldig

Was verwendest Du und warum?

Bei von mir aufgesetzten Testsystemen abhängig von der jeweils gerade verwendeten Distribution. Steht beides zur Verfügung rein nach Lust und Laune. In den Testumgebungen bemerke ich absolut keinen Unterschied.

Produktive Systeme installiere ich nicht.

Meine Einschätzung ohne belegbaren Hintergrund: Bei entsprechend großer Skalierung über mehrere Server hinweg, werden vermutlich die Verantwortlichen derzeit überwiegend zu MySQL greifen.
Hintergrund dürfte da dann aber das Thema „gewachsene Strukturen“ sein und Anbindung an andere Systeme.

1 „Gefällt mir“

Hallo die Antwort ist relativ einfach.
Shopware 6 empfiehlt offiziell MYSQL vor MariaDB.

Sofern man Elastic Search nutzt, gilt das ggf. nicht mehr.

In some places in the code, we use JSON fields. As soon as it comes to filtering, sorting, or aggregating JSON fields, MySQL is ahead of the MariaDB fork. Therefore, we strongly recommend the use of MySQL.

Quelle Shopware: Performance Tweaks | Shopware Documentation

Liebe Grüße Ryusei - HosonoDE

PS: Hier auch ein Kommentar von einem Shopware Mitarbeiter (Shopware Forum).

ja du kannst Shopware 5.6 mit MariaDB 10.4 verwenden. Du solltest jedoch für die optimale Performance unter Shopware 6 eher MySQL 8 verwenden.
Quelle: Shopware 6 & MariaDB 10.1.44 - #4 von shyim

Liebe Grüße Ryusei - HosonoDE

Hab mich grad auch mit dem Thema beschäftigt.

  1. Kollegen gefragt: „Ist egal“
  2. Shopware angerufen: „Ist egal“
  3. Timme Hosting angerufen: Die Info erhalten, dass auf deren Servern MySQL Datenbanken, wenn eingesetzt, auf gesonderten Containern (also einer Art virtuellen Maschine) laufen und somit ein Tick weniger performant sind.

Somit steht nach langem Hin- und Her die Entscheidung. MariaDB :slight_smile:

Ach und wenn es doch jemand probieren sollte, dann muss oben beim Host nicht localhost rein sondern die 127.0.0.1 gefolgt von einem Doppelpunkt und dem korrekten Port.

Das könnte dann so aussehen:
127.0.0.1:14500

Dann viel Spaß noch :wink:

Das ist wohl wie ein Coinflip, je nachdem wen du von Shopware sprichst bekommst ne andere Antwort.

1 „Gefällt mir“

Huhu :slight_smile:

Per Ticket heißt es bei SW nun doch, dass MySQL „dringend“ empfohlen wird. Da haben wir den Coinflip :wink:

Und ein ähnliches Szenario nun auch bei Timme Hosting. Der Tel. Support sagte, dass MySQL in Containern läuft, wobei ich noch nicht kapiert hatte was das für Container sein sollen. Jetzt weiß ich es geht um Docker.

Am Tel. hatte es such so angehört, als ob das dann nicht so eine gute wäre.

Aber ich hab weiter genervt und schlussendlich über ein weiteres Ticket die Ansage bekommen, dass es mit Docker auch tiptop läuft, hier die genaue Antwort samt Link zu detaillierten Werten nach Tests:

Die Aussage; eine native MySQL Installation läuft besser als eine in einem Container, ist recht generell gehalten, da spielen viele Faktoren eine Rolle. Hier mal ein Vergleich: https://dev.mysql.com/blog-archive/mysql-with-docker-performance-characteristics/

Ende der Geschichte: SW6 noch einmal neu mit MySQL installiert.

Ich habe fertig :smiley:

Verwendet ihr ein Server Administrations Tool? Oder macht ihr alles händisch über Config Files?

Ich stehe auch vor dem Problem, dass die meisten Server Config Tools (Plesk, DirectAdmin, ISP Config) nur noch mit MariaDB getestet werden und der Betrieb mit MySQL 8.x nicht garantiert wird. Auch fast alle Distris liefern per Default MariaDB aus.

MySQL neben MariaDB installieren ist zwar möglich aber eher unschön weil MariaDB als in-place Ersatz konzipiert ist: https://dev.mysql.com/doc/refman/8.0/en/multiple-servers.html

Als Docker/Podman Container scheint mir auch mässig sinnvoll. Viele Daten finde ich dazu nicht, ausser: Benchmark PostgreSQL: cross between native versus Docker | by Petr Jahoda | ITNEXT . Und hier scheint die Write Performance von Native => Docker Container signifikant tiefer zu sein. Ergo, wenn man wegen Performance auf MySQL 8.0 wechselt, sollte man wohl auch Shopware containerisieren, sonst schenkt sich das nichts.

Bei einem eigenständigen DB-Server kommt die Netzwerk Latenz dazu.

Ich hab die DB in ISP Config angelegt.

Was ist ein Implace Ersatz?

Das einzige was Hoffnung macht ist, dass der Beitrag 2 Jahre alt ist. :wink:

Ich werde es selber einfach einmal testen. Ich kann ja 2 Staging Umgebungen aufsetzen, von denen einen mit MariaDB und die andere mit MySQL läuft.

Hat jemand eine Idee, mit welchem Tool ich mir da aussagekräftige Daten auswerfen lassen könnte? Und was ich am besten teste.

Mir würde spontan einfallen:

  • Suchen
  • Filtern
  • Kategorie mit vielen Artikeln aufrufen
  • Artikel-Exporte
  • Migration
  • Update

Dann würde mich noch die Frage interessieren, ob es bei der Migration von Shopware 5 Shops, die mit MariaDB liefen Probleme geben kann wenn der 6er auf MySQL läuft.

Schönes Wochenende

Hi,

das ist so nicht ganz richtig - Du kannst durchaus Plesk mit einem aktuellen Linux (z.B. AlmaLinux) und MySQL 8 verwenden anstelle von MariaDB:

Alternativ kannst Du aber auch eine Standardinstallation mit MariaDB verwenden (und diese dann z.B. upgraden auf MariaDB 10.6 - derzeit „offiziell“ die höchste Version, die Plesk unterstützt) und parallel auf dem gleichen System dann MySQL 8 installieren - muss dann halt auf einem anderen Port laufen (z.B. 3307 statt 3306 im Standard) und andere Verzeichnisse für die Datenbanken verwenden.

Die Plesk Datenbank („psa“) läuft dann unter MariaDB, für SW6 wählst Du dann halt den MySQL Server aus auf dem gleichen System.

Viele Grüße

Hello,

Ja das ist korrekt, die DB lässt sich schon austauschen, aber:

Der einzige Grund, Plesk zu nutzen ist, weils das Leben/Administrieren einfacher macht. Die Plesk Updates empfinde ich nicht als besonders transparent, deswegen scheint es mir nicht sinnvoll, hier vom getesteten Standard Stack abzuweichen. Ist doch nur eine Frage der Zeit, bis da was schief geht. Unter Alma Linux bietet Plesk im Installer keine Option, MySQL statt MariaDB zu verwenden.

Ich habe nun unter Alma Linux 9 + Plesk noch nativ MySQL 8.0.33 mit anderem Datadir, Socket, Port konfiguriert. Das klappt auch wunderbar und lässt sich in Plesk hinzufügen und wie die MariaDB verwenden:

Das dürfte die performanteste und in Kombination mit Plesk update-sicherste Lösung sein.

ABER:

Der Shopware 6.5 Installer speichert den DB Port nicht. Egal was man unter Port bei den erweiterten Einstellungen einträgt, er versuchts immer auf 3306 und setzt die Einstellungen wieder zurück. Kann das jemand nachstellen? Auch wenn man z.B. 9999 einträgt und die Connection failen müsste, klopft der Installer bei der Standard DB auf 3306 an.
Jetzt mal schauen, ob ich SW 6.5 sonst irgendwie installieren kann und alternativ muss ich wohl die Installation auf die MariaDB machen, danach in die MySQL DB schieben und in der Shopware Config wieder ändern…

Edit: aaaah ja: Shopware Installer does not use specified Database Port · Issue #3061 · shopware/platform · GitHub

Von MariaDB auf MySQL durch Dumps zu schwenken halte ich auch für so eine Sache … eine Grundinstallation von Almalinux/Plesk und MySQL ist jedoch möglich und freigegeben (siehe hierzu den vorherigen Link):

Siehe Abschnitt „To perform clean installation of Plesk with MySQL 8“

Viele Grüße

Danke für den Hinweis, spannender Austausch.

Ich wollte das gleich mal durchtesten. Das Plesk Dependency Package gibts offenbar nicht für RHEL/Alma Linux 9, nur 7 & 8. Schade.

Mit dem zuletzt 2020 geänderten rpm für CentOS 8 läufts zwar auch auf Alma Linux 9 sauber durch, aber „officially supported“ scheint mir das nicht…

http://ch.origin.autoinstall.plesk.com/mysql-server-community/

Mit AlmaLinux 9 würde ich noch warten - die Plesk Unterstützung ist da noch „recht frisch“:

Mit dem Dependancy Package habe ich hier ein System laufen mit AlmaLinux 8 / MySQL 8.

Seit Anfang November 2022 unterstützt Plesk Alma Linux 9, das wäre nach meinem Empfinden genügend Reifephase um darauf produktiv zu setzen.

Aber du hast einen Punkt, werde wohl auf Alma Linux 8 bauen. So lässt sich tatsächlich out-of-the-box eine vollständig für noch knapp 6 Jahre supportete Konfiguration mit Alma Linux + Plesk + MySQL 8 realisieren.

Danke für deine Inputs!

1 „Gefällt mir“

Du musst den Port mit beim Host eintragen, das hatte. ich oben geschrieben. Lass die erweiterten Einstellungen weg und trag oben im Host erst deinen Host und dann gefolgt von einem Doppelpunkt die 14500 ein.