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.