Práticas recomendadas de configuração do MySQL
Triggers
Este artigo explica como evitar problemas de desempenho ao usar acionadores MySQL. Os acionadores são usados para registrar alterações em tabelas de auditoria.
Produtos e versões afetados
- Adobe Commerce no local
- Adobe Commerce na infraestrutura em nuvem
Impactos no desempenho
Os acionadores são interpretados como código, significando que o MySQL não os pré-compila.
Ao conectar-se ao espaço de transação do query, os acionadores adicionam overhead a um analisador e interpretador para cada query executada com a tabela. Os acionadores compartilham o mesmo espaço de transação que as consultas originais e, enquanto essas consultas competem por bloqueios na tabela, os acionadores competem independentemente por bloqueios em outra tabela.
Essa sobrecarga adicional pode afetar negativamente o desempenho do site se muitos acionadores forem usados.
Uso efetivo
Para evitar problemas de desempenho ao usar acionadores, siga estas diretrizes:
- Se você tiver acionadores personalizados que gravam alguns dados quando o acionador é executado, mova essa lógica para gravar diretamente nas tabelas de auditoria. Por exemplo, adicionando uma consulta adicional no código do aplicativo, após a consulta, você pretendia criar o acionador para.
- Revise os acionadores personalizados existentes e considere removê-los e gravá-los diretamente nas tabelas do lado do aplicativo. Verifique se há gatilhos no banco de dados usando a
SHOW TRIGGERS
Instrução SQL. - Para obter assistência, dúvidas ou preocupações adicionais, envie um tíquete de Suporte da Adobe Commerce.
Conexões subordinadas
O Adobe Commerce pode ler vários bancos de dados de forma assíncrona. Se você espera uma carga alta para o banco de dados MySQL de um site Commerce implantado na arquitetura Pro da infraestrutura em nuvem, o Adobe recomenda habilitar a conexão slave MYSQL.
Quando você ativa a conexão slave do MYSQL, o Adobe Commerce usa uma conexão somente leitura com o banco de dados para receber tráfego somente leitura em um nó não mestre. O desempenho melhora por meio do balanceamento de carga quando apenas um nó lida com o tráfego de leitura-gravação.
Versões afetadas
Adobe Commerce na infraestrutura em nuvem, somente arquitetura Pro
Configuração
Na infraestrutura do Adobe Commerce na nuvem, é possível substituir a configuração padrão da conexão slave do MYSQL definindo a variável MYSQL_USE_SLAVE_CONNECTION. Defina essa variável como true
para usar automaticamente uma conexão somente leitura com o banco de dados.
Para habilitar a conexão subordinada do MySQL:
-
Na estação de trabalho local, altere para o diretório do projeto.
-
No arquivo
.magento.env.yaml
, definaMYSQL_USE_SLAVE_CONNECTION
como verdadeiro.code language-none stage: deploy: MYSQL_USE_SLAVE_CONNECTION: true
-
Confirme as alterações no arquivo
.magento.env.yaml
e envie-o por push para o ambiente remoto.Depois que a implantação é concluída com sucesso, a conexão do escravo do MySQL é habilitada para o ambiente de nuvem.