Bästa praxis för MySQL-konfiguration

NOTE
Det här avsnittet innehåller programtermer som är branschstandard och som vissa kan finna rasistiska, sexistiska eller förtryckande och som kan få läsaren att känna sig sårad, traumatiserad eller ovälkommen. Adobe arbetar med att ta bort dessa villkor från kod, dokumentation och användarupplevelser.

Utlösare

I den här artikeln beskrivs hur du undviker prestandaproblem när du använder MySQL-utlösare. Utlösare används för att logga ändringar i granskningstabeller.

Berörda produkter och versioner

  • Adobe Commerce lokalt
  • Adobe Commerce i molninfrastruktur
WARNING
För Adobe Commerce i molnprojekt ska du alltid testa konfigurationsändringarna i mellanlagringsmiljön innan du ändrar konfigurationen för produktionsmiljön.

Prestandaeffekter

Utlösare tolkas som kod vilket innebär att MySQL inte förkompilerar dem.

Utlösarna är kopplade till frågans transaktionsutrymme och lägger till overhead till en tolk och tolk för varje fråga som utförs med tabellen. Utlösarna delar samma transaktionsutrymme som de ursprungliga frågorna, och även om dessa frågor konkurrerar om lås i tabellen konkurrerar utlösarna oberoende av varandra för lås i ett annat register.

Denna extra kostnad kan påverka webbplatsens prestanda negativt om många utlösare används.

WARNING
Adobe Commerce stöder inte några anpassade utlösare i Adobe Commerce-databasen eftersom anpassade utlösare kan orsaka inkompatibilitet med framtida Adobe Commerce-versioner. Bästa tillvägagångssätt finns i Allmänna MySQL-riktlinjer i Adobe Commerce-dokumentationen.

Effektiv användning

Följ de här riktlinjerna för att förhindra prestandaproblem när du använder utlösare:

  • Om du har anpassade utlösare som skriver data när utlösaren körs, flyttar du den här logiken så att den skriver direkt till granskningstabellerna i stället. Genom att till exempel lägga till ytterligare en fråga i programkoden efter frågan som du vill skapa utlösaren för.
  • Granska befintliga anpassade utlösare och överväg att ta bort dem och skriva direkt till tabellerna från programsidan. Kontrollera om det finns utlösare i databasen med SHOW TRIGGERS SQL-sats.
  • För ytterligare hjälp, frågor eller frågor skicka en Adobe Commerce-supportanmälan.

Slavanslutningar

Adobe Commerce kan läsa flera databaser asynkront. Om du förväntar dig en hög belastning för MySQL-databasen för en Commerce-plats som distribuerats på en molninfrastruktur, rekommenderar Adobe att du aktiverar MYSQL-slavanslutningen.

När du aktiverar MYSQL-slavanslutningen använder Adobe Commerce en skrivskyddad anslutning till databasen för att ta emot skrivskyddad trafik på en icke-huvudnod. Prestandan förbättras genom lastbalansering när bara en nod hanterar läs- och skrivtrafik.

Berörda versioner

Adobe Commerce på molninfrastruktur, endast Pro-arkitektur

Konfiguration

I Adobe Commerce om molninfrastruktur kan du åsidosätta standardkonfigurationen för MYSQL-slavanslutningen genom att ange MYSQL_USE_SLAVE_CONNECTION variabel. Ange variabeln till true för att automatiskt använda en skrivskyddad anslutning till databasen.

Aktivera MySQL-slavanslutningen:

  1. Byt till din projektkatalog på din lokala arbetsstation.

  2. I .magento.env.yaml -fil, ange MYSQL_USE_SLAVE_CONNECTION till true.

    code language-none
    stage:
      deploy:
        MYSQL_USE_SLAVE_CONNECTION: true
    
  3. Verkställ .magento.env.yaml och skickas till fjärrmiljön.

    När distributionen har slutförts aktiveras MySQL-slavanslutningen för molnmiljön.

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