Considere a seguinte situação hipotética: O sistema acadêmi...
O sistema acadêmico de uma Universidade utiliza MySQL 8 como banco de dados principal. Durante o período de matrícula, o sistema começou a apresentar lentidão severa e, em alguns momentos, indisponibilidade. Em períodos anteriores de matrícula, foi necessário realizar reinicializações manuais diárias no servidor de banco de dados devido a instabilidades e degradação de desempenho.
Durante a análise, a equipe de Tecnologia da Informação identificou que:
a aplicação executa múltiplas consultas sequenciais ao banco dentro da mesma requisição HTTP (padrão N+1).
algumas transações permanecem abertas por vários segundos.
o número de conexões ativas atinge frequentemente o limite configurado (max_connections).
há aumento significativo de locks em tabelas de pedidos e estoque.
Assinale a alternativa que apresenta a abordagem CORRETA para prevenir o problema de travamento e alta contenção no MySQL, bem como otimizar o desempenho do servidor nesse cenário:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: C
Fundamento decisivo: A decisão dependia de identificar a causa predominante do problema: não era falta de capacidade bruta do MySQL, mas o desenho da aplicação e o ciclo das transações/conexões, evidenciado por N+1, transações longas, locks e estouro de max_connections. Por isso, a alternativa correta é a que corrige esses fatores na aplicação.
- Quando houver N+1, transações longas, muitos locks e estouro de conexões ao mesmo tempo, priorize correção no código e no ciclo de vida de transações/conexões.
- Atingir max_connections é sinal operacional; não trate isso como solução isolada sem reduzir o custo por requisição.
- Para reduzir contenção em tabelas concorridas, encurte transações antes de considerar medidas artificiais de capacidade.
- Não substitua engine transacional para 'reduzir locks' sem resolver o padrão de acesso e o tempo de retenção das transações.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo