Backend · Rendimiento · Decateca
Optimización del listado de clientes
El listado principal del CRM tardaba 10 segundos por un problema N+1. Lo bajé a menos de 1 segundo sin cambiar la base de datos ni la infraestructura.
10x más rápido · 1,400 → 7 consultas

Situación
El listado principal del CRM tardaba unos 10 segundos en cargar. Al revisar el servicio encontré que por cada cliente se ejecutaban 7 u 8 consultas: con 200 clientes eran cerca de 1,400 consultas por petición (el problema conocido como N+1).
Qué hice
- Reemplacé las consultas individuales por 7 consultas agrupadas que traen todos los datos de una vez.
- Crucé la información en memoria con diccionarios para que cada búsqueda fuera inmediata.
- Documenté el patrón y lo apliqué desde el diseño en el módulo de alquiler para que el problema no se repitiera.
Resultado
La carga pasó de 10 segundos a menos de 1 segundo, unas 10 veces más rápida, sin cambiar la base de datos ni la infraestructura.


