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

Gráfico de optimización: el listado del CRM pasó de 10 segundos a menos de 1 segundo
Ilustración del proyecto. La interfaz de producción puede ser diferente.

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.

Otros casos de estudio

Disponible para proyectos

¿Necesitas algo parecido?

Cuéntame qué necesitas construir, mejorar o automatizar. Conversemos sobre la mejor forma de llevarlo a producción.

Tiempo completo o por proyecto · presencial, remoto o híbrido en Lima.