Optimizar una base de datos con millones de registros en una máquina virtual gratuita puede parecer una quimera, pero es posible cuando se aplican estrategias precisas de indexación, almacenamiento en caché y diseño asíncrono. En este caso, partiendo de un escenario donde 1,7 millones de filas en PostgreSQL provocaban escaneos secuenciales de 45 segundos y consultas COUNT(*) que colapsaban el planificador, se logró reducir el tiempo de ensamblado de página a solo 66 ms, todo ello con un costo recurrente de cero. La clave no fue añadir hardware, sino repensar la arquitectura desde la base.
El primer gran cambio fue eliminar las consultas COUNT(*) en tiempo real. En lugar de pedirle a PostgreSQL que cuente filas cada vez que se necesita mostrar un paginador o un panel, se implementó una tabla ligera de stats_cache que almacena contadores preagregados. Cada vez que un proceso de ingesta actualiza datos o un producto cambia de estado, un worker asíncrono incrementa o decrementa el contador correspondiente. La interfaz de usuario hace una consulta de 2 ms (una búsqueda por clave primaria) en lugar de desencadenar un escaneo de millones de filas. Esa consistencia eventual —los contadores pueden estar ligeramente desfasados respecto al estado real— es perfectamente aceptable en un sistema de información al consumidor, donde los datos críticos de seguridad se mantienen siempre precisos.
Otro punto fundamental fue la revisión de los índices. Tener índices individuales por columna (categoría, estado, puntuación) resultaba inútil porque las consultas reales filtran y ordenan combinando esos campos. La solución fue sustituirlos por un único índice compuesto que refleja exactamente el orden de las cláusulas WHERE y ORDER BY. Así, el planificador de PostgreSQL puede realizar búsquedas por condición de índice sin tocar el resto de las filas. Pasar de escanear 1,7 millones de filas a recuperar solo las 20 necesarias marca la diferencia entre una aplicación que responde en milisegundos y una que se queda bloqueada.
En el ámbito del contenido multilingüe, la traducción bajo demanda mediante APIs de inteligencia artificial podía disparar los costes y la latencia. La alternativa fue construir una capa de caché direccionada por contenido: se genera un hash SHA-256 del texto fuente y se busca en una tabla de traducciones. Si ya existe, se devuelve al instante; si no, un worker en segundo plano solicita la traducción al modelo de IA (Gemini 2.5 Flash Lite) y la almacena de forma permanente. Así, cada texto se traduce una sola vez y cualquier petición posterior —ya sea de un usuario, un buscador o una réplica en otra región— se sirve desde el almacenamiento local en menos de 5 ms. Es un enfoque que encaja perfectamente con los principios de aplicaciones a medida eficientes y rentables.
La gestión de imágenes y contenido generado por usuarios también se benefició de restricciones a nivel de base de datos. En lugar de implementar complejas reglas de rate limiting en la capa de aplicación, se añadió una restricción única que impide que un mismo usuario envíe más de una sugerencia por producto. La propia base de datos garantiza la atomicidad y previene abusos sin necesidad de lógica adicional. Esto es un ejemplo de cómo un software a medida puede integrar la seguridad y la integridad desde el esquema, no desde el código.
Todo este trabajo demuestra que no se necesita infraestructura cara para ofrecer un rendimiento excelente. Con una VM ARM de 6 GB en Oracle Cloud Free Tier y coste cero de hosting, se logra servir 1,7 millones de productos, 41.000 alertas de retirada gubernamental y más de 100.000 quejas de la comunidad en 7 idiomas, todo en 66 ms de media por página. Detrás de estas cifras hay decisiones de diseño que priorizan la precisión donde realmente importa y aceptan la consistencia diferida donde es razonable.
Si este tipo de optimización resuena con los desafíos que enfrenta tu organización, en Q2BSTUDIO ofrecemos servicios que van desde la consultoría en servicios cloud AWS y Azure hasta el desarrollo de ia para empresas, pasando por ciberseguridad, servicios inteligencia de negocio con Power BI, e implementación de agentes IA automatizados. Cada proyecto se aborda con un enfoque de ingeniería preciso, midiendo dónde la precisión en tiempo real es indispensable y dónde una solución asíncrona o con consistencia eventual es la opción más inteligente.
Lo más interesante de este caso es que no requirió herramientas exóticas. Solo requirió ser riguroso en la definición de índices, valiente para cambiar la forma de contar registros, y disciplinado en la gestión de la caché de traducciones. Y, por supuesto, contar con el acompañamiento de un equipo que entiende cómo transformar restricciones de recursos en oportunidades de innovación. Si te gustaría explorar cómo aplicar principios similares a tu propia infraestructura, no dudes en contactarnos.

.jpg)
