Prácticas recomendadas de configuración de MySQL
Déclencheur
Este artículo explica cómo evitar problemas de rendimiento al utilizar déclencheur MySQL. Los déclencheur se utilizan para registrar cambios en tablas de auditoría.
Productos y versiones afectados
- Adobe Commerce local
- Adobe Commerce en la infraestructura en la nube
Impactos en el rendimiento
Los déclencheur se interpretan como código, lo que significa que MySQL no los precompila.
Al conectarse al espacio de transacciones de la consulta, los déclencheur agregan sobrecarga a un analizador e intérprete para cada consulta realizada con la tabla. Los déclencheur comparten el mismo espacio de transacciones que las consultas originales y, mientras que estas consultas compiten por bloqueos en la tabla, los déclencheur compiten de forma independiente por bloqueos en otra tabla.
Esta sobrecarga adicional puede afectar negativamente al rendimiento del sitio si se utilizan muchos déclencheur.
Uso efectivo
Para evitar problemas de rendimiento al utilizar déclencheur, siga estas directrices:
- Si tiene déclencheur personalizados que escriben algunos datos cuando se ejecuta el déclencheur, muévalos para que escriban directamente en las tablas de auditoría. Por ejemplo, agregando una consulta adicional en el código de la aplicación, después de la consulta para la que pretendía crear el déclencheur.
- Revise los déclencheur personalizados existentes y considere la posibilidad de eliminarlos y escribir directamente en las tablas desde la aplicación. Compruebe si hay déclencheur existentes en la base de datos utilizando
SHOW TRIGGERS
Instrucción SQL. - Para obtener asistencia, preguntas o inquietudes adicionales, enviar un ticket de asistencia de Adobe Commerce.
Conexiones esclavas
Adobe Commerce puede leer varias bases de datos de forma asincrónica. Si espera una carga alta para la base de datos MySQL de un sitio de Commerce implementado en la arquitectura Cloud Infrastructure Pro, Adobe recomienda habilitar la conexión esclava MYSQL.
Al habilitar la conexión esclava MYSQL, Adobe Commerce utiliza una conexión de solo lectura a la base de datos para recibir tráfico de solo lectura en un nodo no maestro. El rendimiento mejora mediante el equilibrio de carga cuando solo un nodo gestiona el tráfico de lectura-escritura.
Versiones afectadas
Adobe Commerce en infraestructura en la nube, solo arquitectura Pro
Configuración
En Adobe Commerce en la infraestructura en la nube, puede anular la configuración predeterminada para la conexión esclava de MYSQL estableciendo el MYSQL_USE_SLAVE_CONNECTION variable. Configure esta variable como true
para utilizar automáticamente una conexión de sólo lectura con la base de datos.
Para habilitar la conexión esclava MySQL:
-
En la estación de trabajo local, cambie al directorio del proyecto.
-
En el
.magento.env.yaml
, configure elMYSQL_USE_SLAVE_CONNECTION
a true.code language-none stage: deploy: MYSQL_USE_SLAVE_CONNECTION: true
-
Confirme el
.magento.env.yaml
cambios de archivo y push al entorno remoto.Una vez que la implementación se completa correctamente, la conexión esclava MySQL se activa para el entorno de nube.