

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Um técnico de um Ministério Público é responsável por analisar movimentações financeiras armazenadas na tabela transações de um banco de dados MySQL, que já conta com milhões de registros:
CREATE TABLE transacoes (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
cliente_id INT,
valor DECIMAL (10,2),
data DATE
);
Ela precisa gerar um relatório para apurar o valor total movimentado por cada cliente no ano de 2025. Sua primeira tentativa foi por meio do comando abaixo:
SELECT cliente_id, SUM (valor)
FROM transacões
WHERE YEAR (data) = 2025
GROUP BY cliente_id;
Entretanto, a consulta se mostrou lenta e impactando o desempenho do banco de dados. Nesse caso, a alteração mais indicada para otimizar essa execução é
criar um índice em YEAR (data) para acelerar o filtro e agrupar por cliente_id e data.
substituir WHERE YEAR (data) = 2025 por WHERE data BETWEEN '2025-01-01' AND '2025-12-31".
converter a coluna data para texto (VARCHAR) e filtrar com LIKE '2025%'.
reescrever a consulta com DISTINCT cliente_id antes de somar os valores.
forçar o MySQL a usar FORCE INDEX (cliente_id) mesmo que o filtro seja pela data.