Best Practices für die Datenbankkonfiguration

Erfahren Sie mehr über Best Practices zur Verbesserung der Datenbankleistung und zum effizienten Arbeiten mit der Datenbank bei der Bereitstellung von Adobe Commerce in der Cloud-Infrastruktur.

Betroffene Produkte

Adobe Commerce auf Cloud-Infrastruktur

Alle MyISAM-Tabellen in InnoDB konvertieren

Adobe empfiehlt die Verwendung der InnoDB-Datenbank-Engine. Bei einer Standardinstallation von Adobe Commerce werden alle Tabellen in der Datenbank mit der InnoDB-Engine gespeichert. Einige Drittanbietermodule (Erweiterungen) können jedoch Tabellen im MyISAM-Format einführen. Überprüfen Sie nach der Installation eines Drittanbietermoduls die Datenbank, um alle Tabellen im myisam-Format zu identifizieren und in innodb Format zu konvertieren.

Prüfen, ob ein Modul MyISAM-Tabellen enthält

Sie können den Drittanbietermodul-Code vor der Installation analysieren, um festzustellen, ob er MyISAM-Tabellen verwendet.

Wenn Sie bereits eine Erweiterung installiert haben, führen Sie die folgende Abfrage aus, um festzustellen, ob die Datenbank über MyISAM-Tabellen verfügt:

SELECT table_schema, CONCAT(ROUND((index_length+data_length)/1024/1024),'MB')
    AS total_size FROM information_schema. TABLES WHERE engine='myisam' AND table_schema
    NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys');

Ändern der Speicher-Engine in InnoDB

Legen Sie in der db_schema.xml-Datei, die die Tabelle deklariert, den engine Attributwert für den entsprechenden table auf innodb fest. Weitere Informationen finden Sie unter Konfigurieren eines deklarativen Schemas > Tabellenknoten in unserer Entwicklerdokumentation.

Das deklarative Schema wurde in Adobe Commerce in der Cloud-Infrastrukturversion 2.3 eingeführt.

Konfigurieren der empfohlenen Suchmaschine für die native MySQL-Suche

Adobe empfiehlt, Elasticsearch oder OpenSearch immer für Ihr Adobe Commerce on Cloud-Infrastrukturprojekt einzurichten, auch wenn Sie ein Drittanbieter-Suchwerkzeug für Ihr Adobe Commerce-Programm konfigurieren möchten. Diese Konfiguration bietet eine Fallback-Option für den Fall, dass das Drittanbieter-Such-Tool fehlschlägt.

Welche Suchmaschine Sie verwenden, hängt von der installierten Version von Adobe Commerce on Cloud ab:

  • Verwenden Sie für Adobe Commerce 2.4.4 und höher den OpenSearch-Service für die native MySQL-Suche.

  • Verwenden Sie für frühere Adobe Commerce-Versionen Elasticsearch.

Um festzustellen, welche Suchmaschine derzeit verwendet wird, führen Sie den folgenden Befehl aus:

./bin/magento config:show catalog/search/engine

Konfigurationsanweisungen finden Sie im Entwicklerhandbuch für Adobe Commerce in Cloud Manager:

Benutzerdefinierte Trigger vermeiden

Verwenden Sie nach Möglichkeit keine benutzerdefinierten Trigger.

Trigger werden verwendet, um Änderungen in Audit-Tabellen zu protokollieren. Adobe empfiehlt aus den folgenden Gründen, die Anwendung so zu konfigurieren, dass sie direkt in die Audit-Tabellen schreibt, anstatt die Trigger-Funktion zu verwenden:

  • Trigger werden als Code interpretiert und von MySQL nicht vorkompiliert. Durch das Anbinden an den Transaktionsbereich Ihrer Abfrage wird der Overhead für jede mit der Tabelle durchgeführte Abfrage einem Parser und Interpreter hinzugefügt.
  • Die Trigger nutzen denselben Transaktionsbereich wie die Originalabfragen. Während diese Abfragen um Tabellensperren konkurrieren, konkurrieren die Trigger unabhängig voneinander um Sperren in einer anderen Tabelle.

Weitere Informationen zu Alternativen zur Verwendung benutzerdefinierter Trigger finden Sie unter MySQL-Trigger.

Upgrade von ECE-Tools auf Version 2002.0.21 oder höher ece-tools-version

Um potenzielle Probleme mit Cron-Deadlocks zu vermeiden, aktualisieren Sie ECE-Tools auf Version 2002.0.21 oder höher. Anweisungen finden Sie unter Aktualisieren ece-tools Version in unserer Entwicklerdokumentation.

Indexermodus sicher wechseln

Beim Wechsel des Indexers werden data definition language (DDL)-Anweisungen generiert, um Trigger zu erstellen, die zu Datenbanksperren führen können. Sie können dieses Problem verhindern, indem Sie Ihre Website in den Wartungsmodus versetzen und Cron-Aufträge deaktivieren, bevor Sie die Konfiguration ändern.
Anweisungen finden Sie Konfigurieren von) im Adobe Commerce-Konfigurationshandbuch.

DDL-Anweisungen nicht in Produktion ausführen

Vermeiden Sie die Ausführung von DDL-Anweisungen in der Produktionsumgebung, um Konflikte (wie Tabellenänderungen und -erstellungen) zu vermeiden. Der setup:upgrade bildet eine Ausnahme.

Wenn Sie eine DDL-Anweisung ausführen müssen, setzen Sie die Website in den Wartungsmodus und deaktivieren Sie Cron (siehe die Anweisungen zum sicheren Wechseln der Indizes im vorherigen Abschnitt).

Auftragsarchivierung aktivieren

Aktivieren Sie die Auftragsarchivierung vom Administrator aus, um den Platz für Verkaufstabellen zu reduzieren, wenn Ihre Auftragsdaten wachsen. Die Archivierung spart MySQL Speicherplatz und verbessert die Checkout-Leistung.

Siehe Archivierung aktivieren in der Dokumentation zu Adobe Commerce Merchant.

Weitere Informationen

recommendation-more-help
754cbbf3-3a3c-4af3-b6ce-9d34390f3a60