Dados
Como reduzimos em 85% o tempo de consulta
em bases de 100M+ registros
Planos de execução, índices compostos e cache orientado a eventos: o roteiro que levou consultas de 15 minutos para 2 minutos em uma operadora MVNO.
Equipe Leloo
Engenharia de Dados
6 min de leitura
Bases com centenas de milhões de registros raramente sofrem de falta de hardware. Sofrem de planos de execução ruins, índices desenhados para outra época e consultas que fazem mais trabalho do que precisam.
Diagnóstico antes de qualquer índice
O primeiro passo é medir: quais consultas consomem mais tempo acumulado, quais varrem tabelas inteiras e quais bloqueiam outras. Sem esse mapa, otimizar é adivinhar.
Índices compostos e ordem das colunas
Índices compostos seguem a ordem das colunas: filtros de igualdade primeiro, intervalos depois, colunas de ordenação por último. Reescrever três índices com esse critério eliminou a maior parte das varreduras completas.
Cache com invalidação por evento
Para leituras repetidas de dados que mudam pouco, uma camada de cache invalidada por eventos de escrita reduziu a carga no banco sem introduzir dados desatualizados.
"O banco mais rápido é aquele que não precisa responder à mesma pergunta duas vezes."
O resultado: consultas críticas de 15 para cerca de 2 minutos, 85% de redução, e R$ 180 mil por ano economizados em infraestrutura que deixou de ser necessária.