.png)
Ich betreibe einen E-Commerce-Shop, der auf WordPress läuft (und WooCommerce verwendet). Wir betreiben die Site nun seit rund 4 Jahren und in dieser Zeit hat die Zahl der Verkäufe und Kundenanmeldungen auf unserer Website stark zugenommen, was großartig ist. Der Nachteil ist jedoch, dass unsere Website in vielen Bereichen extrem langsam geworden ist (dies betrifft die Ausführung von Aufgaben wie das Bearbeiten von Produkten über das Backend des Shops und die Art und Weise, wie unsere Kunden durch unsere Website navigieren und ihre Bestellungen abschließen).
Ich denke, die Herausforderung besteht hier darin, dass sich im Laufe der Zeit eine große Menge an Postmeta- und Usermeta-Daten in der MySQL-Datenbank angesammelt hat, was zu einem echten Leistungsabfall geführt hat und auf unserer Site zahlreiche Probleme hinsichtlich der Ladezeiten verursacht.
Um genau zu sein:
- Unsere Postmeta-Datenbanktabelle besteht aus ~3.554.802 Zeilen
- Unsere Usermeta-Datenbanktabelle besteht aus ~2.759.005 Zeilen
- Schließlich besteht woocommerce_order_itemmeta aus ~1.343.448 Zeilen. Viele der anderen Tabellen in unserer Datenbank liegen hinsichtlich der Zeilenanzahl im Allgemeinen im sechsstelligen Bereich.
Ich weiß, dass wir einfach alte Daten (z. B. alte Bestelldaten usw.) löschen könnten. Kann mir jemand aber einen alternativen Ansatz empfehlen, um das Leistungsproblem zu lösen, ohne Daten zu löschen?
Ich habe Artikel gesehen, in denen empfohlen wurde, ein Indizierungs-Plugin zum Indizieren von Datenbanktabellen mit einer hohen Zeilenanzahl zu verwenden. Als wir diesen Ansatz das letzte Mal ausprobiert haben, wurde unsere Datenbank jedoch beschädigt (wir hatten jedoch ein Backup in Bereitschaft, das zur Wiederherstellung bereitstand).
Ich weiß, dass es viele Beiträge/Artikel zum Thema „Aufgeblähtheit von WordPress“ gibt, die mit der Anhäufung großer Mengen an Metadaten und Postdaten in der Datenbank einhergeht, aber gibt es irgendwelche Empfehlungen, z. B. zu alternativen Datenbank-Engines/-Systemen, die besser für die Verarbeitung größerer Datenmengen geeignet sind?
Oder vielleicht Empfehlungen zur Durchführung von Optimierungen an unserer aktuellen Datenbank für eine schnellere Verarbeitung von Datenbanktabellen mit einer großen Zeilenanzahl? (Als Möglichkeit zur Beschleunigung der Seitenladezeit)
MySQL DB-Server-Spezifikation:
Tabellen-Engine: INNODB
Wir betreiben unsere Datenbank derzeit auf einem Remote-Datenbankserver und verwenden MySQL 8.0.
Serverspezifikation:
- Bare Metal Server
- CPU: 16 Kerne x 3,0 GHz (AMD Epyc 7302P)
- Arbeitsspeicher: 128 GB
- NVMe2 x 960 GB Hardware-RAID 1