Best Practices für die MySQL-Konfiguration

NOTE
Dieses Thema enthält branchenübliche Softwarebegriffe, die einige als rassistisch, sexistisch oder unterdrückend empfinden und die dazu führen können, dass sich der Leser verletzt, traumatisiert oder unerwünscht fühlt. Adobe arbeitet daran, diese Begriffe aus Code, Dokumentation und Benutzererlebnissen zu entfernen.

Trigger

In diesem Artikel wird erläutert, wie Sie Leistungsprobleme bei der Verwendung von MySQL-Triggern vermeiden können. Trigger werden verwendet, um Änderungen in Audit-Tabellen zu protokollieren.

Betroffene Produkte und Versionen

  • Adobe Commerce vor Ort
  • Adobe Commerce auf Cloud-Infrastruktur
WARNING
Testen Sie bei Adobe Commerce in Cloud-Projekten immer Konfigurationsänderungen in der Staging-Umgebung, bevor Sie die Konfiguration für die Produktionsumgebung ändern.

Leistungsbeeinträchtigungen

Trigger werden als Code interpretiert, was bedeutet, dass MySQL sie nicht vorkompiliert.

Wenn Sie sich die Transaktionsfläche der Abfrage ansehen, fügen Trigger einem Parser und Interpreter Mehraufwand für jede mit der Tabelle ausgeführte Abfrage hinzu. Die Trigger teilen sich denselben Transaktionsraum wie die ursprünglichen Abfragen. Während diese Abfragen um Sperren in der Tabelle konkurrieren, konkurrieren die Trigger unabhängig voneinander um Sperren in einer anderen Tabelle.

Dieser zusätzliche Mehraufwand kann sich negativ auf die Site-Leistung auf der Site auswirken, wenn viele Trigger verwendet werden.

WARNING
Adobe Commerce unterstützt keine benutzerdefinierten Trigger in der Adobe Commerce-Datenbank, da benutzerdefinierte Trigger Inkompatibilitäten mit zukünftigen Adobe Commerce-Versionen verursachen können. Best Practices finden Sie unter Allgemeine MySQL-Richtlinien in der Adobe Commerce-Dokumentation.

Wirksame Anwendung

Um Leistungsprobleme bei der Verwendung von Triggern zu vermeiden, befolgen Sie die folgenden Richtlinien:

  • Wenn Sie über benutzerdefinierte Trigger verfügen, die bei der Ausführung des Triggers Daten schreiben, verschieben Sie diese Logik, um stattdessen direkt in die Audit-Tabellen zu schreiben. Fügen Sie beispielsweise im Anwendungscode nach der Abfrage, für die Sie den Trigger erstellen möchten, eine zusätzliche Abfrage hinzu.
  • Überprüfen Sie vorhandene benutzerdefinierte Trigger und erwägen Sie, sie zu entfernen und direkt von der Anwendungsseite aus in die Tabellen zu schreiben. Suchen Sie mithilfe der "SHOW TRIGGERS SQL Statement" nach vorhandenen Triggern in Ihrer Datenbank.
  • Wenn Sie weitere Unterstützung, Fragen oder Bedenken benötigen, senden Sie ein Support-Ticket für Adobe Commerce🔗.

Slave-Verbindungen

Adobe Commerce kann mehrere Datenbanken asynchron lesen. Wenn Sie eine hohe Belastung der MySQL-Datenbank einer Commerce-Site erwarten, die in der Cloud Infrastructure Pro-Architektur bereitgestellt wird, empfiehlt Adobe die Aktivierung der MYSQL-Slave-Verbindung.

Wenn Sie die MYSQL-Slave-Verbindung aktivieren, verwendet Adobe Commerce eine schreibgeschützte Verbindung zur Datenbank, um schreibgeschützten Traffic auf einem Nicht-Master-Knoten zu empfangen. Die Leistung verbessert sich durch den Lastenausgleich, wenn nur ein Knoten Lese- und Schreibvorgänge-Traffic verarbeitet.

Betroffene Versionen

Adobe Commerce in Cloud-Infrastruktur, nur Pro-Architektur

Konfiguration

In der Cloud-Infrastruktur von Adobe Commerce können Sie die Standardkonfiguration für die MYSQL-Slave-Verbindung außer Kraft setzen, indem Sie die Variable MYSQL_USE_SLAVE_CONNECTION festlegen. Setzen Sie diese Variable auf "true", um automatisch eine schreibgeschützte Verbindung zur Datenbank zu verwenden.

Aktivieren der MySQL-Slave-Verbindung:

  1. Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.

  2. Setzen Sie in der Datei .magento.env.yaml den Wert MYSQL_USE_SLAVE_CONNECTION auf "true".

    code language-none
    stage:
      deploy:
        MYSQL_USE_SLAVE_CONNECTION: true
    
  3. Binden Sie die Änderungen der .magento.env.yaml-Datei ein und leiten Sie sie an die Remote-Umgebung weiter.

    Nach erfolgreichem Abschluss der Bereitstellung wird die MySQL-Slave-Verbindung für die Cloud-Umgebung aktiviert.

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