Shopware 6 - MariaDB vs. MySQL

Ich bin auch bei Timmehosting. Ich hab einen frischen Managed Server den t31 NVMe 350 mit einem Shopware6 Shop aufgesetzt und MariaDB11.1 vs die Systemversion ohne Docker getestet. Meine Tests beliefen sich auf Backendaufgaben. In und Export, da ich damit am meisten arbeite.

Vorher habe ich die FROSH Tools Empfehlungen restlos umgesetzt bis auf den opcache und adminworker, da ich laufend im backend arbeite.

Meine Feststellungen wie gesagt gemessen an In- und Exportaufgaben im Vergleich zur Systemdatenbank:
Zeichensatz utf8mb4_unicode_ci
Server: Localhost via UNIX socket
Server-Typ: MariaDB
Server-Version: 10.6.14-MariaDB-1:10.6.14+maria~deb11 - mariadb.org binary distribution
Protokoll-Version: 10
Server-Zeichensatz: UTF-8 Unicode (utf8mb4)
nginx/1.24.0

Docker Datenbanken:
MYSQL8.1 60% langsamer bei den Exporten
MariaDB11.1 30% langsamer bei den Exporten

Da gewisse CLI befehle leider nur mit JSON_OVERLAPS laufen wie media:delete-unused --report werde ich das über Staging machen.

Bei Servern auf Basis von Debian12 ARM64 bleibt einem für MYSQL8 gar nichts anderes übrig, als MariaDB zu nehmen, weil MySQL8 nur als Docker verfügbar ist.
Anders sieht es aus, wenn eine der folgenden Distros verwendet wird.
Oracle Linux 9 / Red Hat Enterprise Linux 9 / Rocky Linux 9 / macOS 13 / macOS 14

Ich kann das bestätigen: wir hatten lange MySQL 5.7 bis Shopware 5.5, sind dann mit Shopware 5.7 auf MariaDB umgestiegen und seitdem wir Shopware 6 verwenden, da wir auch ElasticSearch bzw. bald auf OpenSearch umstellen, sind wir auf MySQL 8.0 umgestiegen.

Kleiner Hinweis: ab Shopware 6.6.3.0 wird MySQL 8.4 (LTS) unterstützt.

Nun aus Erfahrung kann ich leider nur sagen, das MariaDB für größere Datenbanken und Migrationen nicht geeignet ist - ergab eine gemeinsame Analyse mit dem Shopware Support. Erst unter MySQL8 konnte eine größere Migartion problemlos durchgeführt werden.

PS: Der Shopware Support arbeitet übrigens auch mit MySQL8.

Hey R4M - spannendes Thema. Darf ich mal nachhaken? Gab es bei der Migration AUS einer MariaDB oder IN eine MariaDB Probleme?

Welche Datenbank musste auf MySQL umgestellt werden, damit die Migration funktioniert?

Nein so nicht ganz. Die SW5 Umgebung lief unter MySQL 5.7 und der neue SW6 lief unter MariaDB. Das Auslesen der Daten und zwischenspeichern im Mapping hat funktioniert. Erst das eigentliche Schreiben im SW6, also unter MariaDB, hatte massive Probleme bereitet. Die Migration blieb einfach immer irgendwo hängen. Gemeinsam mit dem Shopware Support sind wir über Tage hiweg alle Einstellungen und Parameter durchgegangen. Da wir selber hosten konnten wir alles anpassen. Tja, hat alles nichts genützt. Erst nachdem wir SW6 auf MySQL8 umgestellt hatten lief die Migration durch. Und wenn der Shopware Support auch mit MySQL 8 arbeitet, muss es wohl ein Grund haben.

Perfekt, danke für die Insider Info :slight_smile:

Dann teile ich auch noch eine mit dir altem Forum Hasen:

Bis zur Version Shopware 6.6.3 wird ausschließlich die Nutzung der MySQL 8.0 Versionen empfohlen, wobei die Versionen MySQL 8.0.20 & MySQL 8.0.21 nach wie vor nicht kompatibel sind.

Der Einsatz von MySQL 8.1 bis 8.3 ist nicht empfohlen, da dies jeweils kurzlebige Versionen waren und somit nicht ideal für Produktivumgebungen sind

Mehr infos zu den letzten MySQL Versionen: https://endoflife.date/mysql

Und um den Kreis noch zu schließen: MySQL 8.4 ist kompatibel ab Shopware 6.6.3 … und es besteht die Möglichkeit von 8.0 zu 8.4 zu migrieren.

https://dev.mysql.com/doc/refman/8.4/en/upgrading.html

MySQL 8.4 würde ich mit Vorsicht nehmen, ich hatte es lokal und mit einigen Plugins Probleme bei der Migration. Zum Beispiel das Amazon Pay Plugin lies sich nur installieren nach patch der Mirgrationsdatei. Meine Shopware Version ist 6.6.5.1.

Angeblich soll 8.4 langsamer sein als 8.0 ist da was dran ?

8.x hatte durchaus mit Performance Problemen zu kämpfen.

Mit 9.x sieht das aber schon viel besser aus:

Welche weiteren Plugins haben bei dir Kompatibilitätsprobleme verursacht? Würde auch gerne die LTS (8.4) Version nutzen.