Bonnes pratiques de configuration MySQL
Triggers
Cet article explique comment éviter des problèmes de performances lors de l’utilisation de déclencheurs MySQL. Les déclencheurs sont utilisés pour consigner les modifications dans les tables de contrôle.
Produits et versions concernés
- Adobe Commerce sur site
- Adobe Commerce sur l’infrastructure cloud
Incidences sur les performances
Les déclencheurs sont interprétés comme du code, ce qui signifie que MySQL ne les précompile pas.
En se connectant à l’espace de transaction de la requête, les déclencheurs ajoutent de la surcharge à un analyseur et à un interprète pour chaque requête effectuée avec la table. Les déclencheurs partagent le même espace de transaction que les requêtes d’origine, et tandis que ces requêtes se disputent les verrous sur la table, les déclencheurs se disputent indépendamment les verrous sur une autre table.
Ces frais supplémentaires peuvent avoir un impact négatif sur les performances du site si de nombreux déclencheurs sont utilisés.
Utilisation efficace
Pour éviter des problèmes de performances lors de l’utilisation de déclencheurs, suivez ces instructions :
- Si des déclencheurs personnalisés écrivent des données au moment de l’exécution du déclencheur, déplacez cette logique pour écrire directement dans les tables d’audit à la place. Par exemple, en ajoutant une requête supplémentaire dans le code de l’application, après la requête pour laquelle vous avez voulu créer le déclencheur.
- Examinez les déclencheurs personnalisés existants et envisagez de les supprimer et d’écrire directement dans les tableaux du côté de l’application. Recherchez des déclencheurs existants dans votre base de données à l’aide de l’instruction SQL
SHOW TRIGGERS
. - Pour toute question, assistance ou assistance supplémentaire, soumettez un ticket d’assistance Adobe Commerce.
Connexions esclaves
Adobe Commerce peut lire plusieurs bases de données de manière asynchrone. Si vous attendez une charge élevée pour la base de données MySQL d’un site Commerce déployé sur l’architecture cloud Pro, Adobe recommande d’activer la connexion esclave MYSQL.
Lorsque vous activez la connexion esclave MYSQL, Adobe Commerce utilise une connexion en lecture seule à la base de données pour recevoir du trafic en lecture seule sur un noeud non maître. Les performances s’améliorent grâce à l’équilibrage de charge lorsqu’un seul noeud gère le trafic lecture-écriture.
Versions affectées
Adobe Commerce sur l’infrastructure cloud, architecture Pro uniquement
Configuration
Dans Adobe Commerce sur l’infrastructure cloud, vous pouvez remplacer la configuration par défaut de la connexion esclave MYSQL en définissant la variable MYSQL_USE_SLAVE_CONNECTION . Définissez cette variable sur true
pour utiliser automatiquement une connexion en lecture seule à la base de données.
Pour activer la connexion esclave MySQL :
-
Sur votre poste de travail local, modifiez le répertoire de votre projet.
-
Dans le fichier
.magento.env.yaml
, définissezMYSQL_USE_SLAVE_CONNECTION
sur true.code language-none stage: deploy: MYSQL_USE_SLAVE_CONNECTION: true
-
Validez les modifications de fichier
.magento.env.yaml
et effectuez une notification push vers l’environnement distant.Une fois le déploiement terminé, la connexion esclave MySQL est activée pour l’environnement cloud.