Imagem de fundo

Um técnico de um Ministério Público é responsável por...

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 é


A

criar um índice em YEAR (data) para acelerar o filtro e agrupar por cliente_id e data.


B

substituir WHERE YEAR (data) = 2025 por WHERE data BETWEEN '2025-01-01' AND '2025-12-31".


C

converter a coluna data para texto (VARCHAR) e filtrar com LIKE '2025%'.


D

reescrever a consulta com DISTINCT cliente_id antes de somar os valores.


E

forçar o MySQL a usar FORCE INDEX (cliente_id) mesmo que o filtro seja pela data.