Como otimizar consultas em banco de dados lentas
Publicado em: 24 de Maio de 2026 • Por: Rinaldo Purger
Consultas SQL lentas são um dos problemas de performance mais comuns em aplicações web. Uma query que demora segundos para executar pode travar uma API inteira e frustrar os usuários.
1. Use o EXPLAIN para diagnósticar
Antes de qualquer otimização, entenda o que o banco de dados está fazendo. O comando EXPLAIN revela o plano de execução da query:
EXPLAIN SELECT * FROM pedidos WHERE cliente_id = 42;
Se você ver type: ALL no resultado (full table scan), é sinal de que um índice está faltando.
2. Crie índices nas colunas certas
Índices são a principal ferramenta para acelerar queries. Crie índices nas colunas usadas em cláusulas WHERE, JOIN e ORDER BY:
-- Índice simples
CREATE INDEX idx_pedidos_cliente ON pedidos(cliente_id);
-- Índice composto (para queries com múltiplas colunas)
CREATE INDEX idx_pedidos_status_data ON pedidos(status, created_at);
3. Evite SELECT *
Buscar todas as colunas é um desperdício quando você precisa apenas de algumas. Especifique exatamente o que precisa:
-- Ruim
SELECT * FROM usuarios WHERE ativo = 1;
-- Bom
SELECT id, nome, email FROM usuarios WHERE ativo = 1;
4. Use LIMIT em consultas grandes
Nunca busque milhares de registros de uma vez. Use paginação com LIMIT e OFFSET:
SELECT id, nome FROM produtos ORDER BY created_at DESC LIMIT 20 OFFSET 0;
Conclusão
A combinação de EXPLAIN para diagnóstico + índices bem criados resolve a grande maioria dos problemas de performance em banco de dados. Monitore suas queries regularmente e otimize proativamente.