Cómo reducí la latencia de una base de datos en un 75%
Un caso real donde el índice correcto y la reestructuración de queries transformaron el rendimiento de una app de e-commerce.
Una tienda virtual cargaba su listado de productos en 4.2 segundos. El problema no era la infraestructura: era la base de datos. Una query con joins innecesarios, sin índice sobre la columna de filtrado y con una subconsulta que se ejecutaba por cada fila.
El primer cambio fue agregar un índice compuesto sobre las columnas de categoría y precio, que eran las que el cliente usaba para filtrar y ordenar. Ese solo cambio redujo el tiempo de 4.2s a 1.1s.
El segundo fue reescribir la query: eliminar la subconsulta correlacionada, convertir los joins en un solo query con agregación y paginar en la base en lugar de traer todo a memoria. Resultado final: 1.05 segundos, un 75% menos de latencia, sin cambiar un solo servidor.