El error de N+1 que me costó una semana encontrar
por Marc Fuentes Moreno··137 votos
Historia de terror real:
Teniamos una pagina que cargaba lenta. Muy lenta. 3-4 segundos para mostrar una lista de 20 items.
Despues de una semana de investigacion: N+1 query. Cargabamos los posts y luego para cada post haciamos una query separada para el autor.
Solucion: eager loading con JOIN en una sola query. Tiempo de carga: 80ms.
Leccion: activa el logging de queries en desarrollo desde el primer dia. No cuando ya estes en produccion y tarde.