Bästa praxis för MySQL-konfiguration
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
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.
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 hjälp av
SHOW TRIGGERS
SQL-sats. - Skicka en Adobe Commerce-supportanmälan om du vill ha mer hjälp, frågor eller funderingar.
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 i molninfrastrukturen kan du åsidosätta standardkonfigurationen för MYSQL-slavanslutningen genom att ange variabeln MYSQL_USE_SLAVE_CONNECTION . Ange den här variabeln till true
om du automatiskt vill använda en skrivskyddad anslutning till databasen.
Så här aktiverar du MySQL-slavanslutningen:
-
Byt till din projektkatalog på din lokala arbetsstation.
-
Ange
MYSQL_USE_SLAVE_CONNECTION
som true i filen.magento.env.yaml
.code language-none stage: deploy: MYSQL_USE_SLAVE_CONNECTION: true
-
Genomför ändringarna av filen
.magento.env.yaml
och skicka den till fjärrmiljön.När distributionen har slutförts aktiveras MySQL-slavanslutningen för molnmiljön.