Una consulta se volvió lenta en producción. ¿Cómo lo investigas?
Respuesta
- Confirma y mide: qué consulta, cuánto tarda, desde cuándo (slow query log,
pg_stat_statements, trazas APM). - Reproduce con
EXPLAIN ANALYZE; busca sequential scans, estimaciones de filas erróneas, ordenaciones costosas, nested loops sobre conjuntos grandes. - Revisa los cambios recientes: despliegues, crecimiento de datos, filtros nuevos, estadísticas desactualizadas (
ANALYZE). - Soluciones: añade o ajusta índices (compuestos, covering, parciales), reescribe la consulta, evita N+1, pagina, usa caché, desnormaliza o añade una read replica.
- Revisa los locks y la saturación del connection pool.
- Verifica la solución con la misma medición y añade monitorización.
Practica esta pregunta en Repaso