Com vaig aconseguir servir pàgines en 66ms amb 1.7M files en VM gratuïta

Descobreix com optimitzar una base de dades PostgreSQL d'1.7M files en una VM gratuïta: índexs compostos, memòria cau de traducció i recompte precalculat. Pàgines

miércoles, 1 de julio de 2026 • 4 min de lectura • Equip Q2BSTUDIO

Optimització de consultes, índexs i traducció sense cost

Optimitzar una base de dades amb milions de registres en una màquina virtual gratuïta pot semblar una quimera, però és possible quan s'apliquen estratègies precises d'indexació, emmagatzematge en memòria cau i disseny asíncron. En aquest cas, partint d'un escenari on 1,7 milions de files a PostgreSQL provocaven escanejos seqüencials de 45 segons i consultes COUNT(*) que col·lapsaven el planificador, es va aconseguir reduir el temps de muntatge de pàgina a només 66 ms, tot això amb un cost recurrent de zero. La clau no va ser afegir maquinari, sinó repensar l'arquitectura des de la base.

El primer gran canvi va ser eliminar les consultes COUNT(*) en temps real. En lloc de demanar a PostgreSQL que compti files cada vegada que es necessita mostrar un paginador o un panell, es va implementar una taula lleugera de stats_cache que emmagatzema comptadors preagregats. Cada vegada que un procés d'ingesta actualitza dades o un producte canvia d'estat, un treballador asíncron incrementa o decrementa el comptador corresponent. La interfície d'usuari fa una consulta de 2 ms (una cerca per clau primària) en lloc de desencadenar un escaneig de milions de files. Aquesta consistència eventual —els comptadors poden estar lleugerament desfasats respecte a l'estat real— és perfectament acceptable en un sistema d'informació al consumidor, on les dades crítiques de seguretat es mantenen sempre precises.

Un altre punt fonamental va ser la revisió dels índexs. Tenir índexs individuals per columna (categoria, estat, puntuació) resultava inútil perquè les consultes reals filtren i ordenen combinant aquests camps. La solució va ser substituir-los per un únic índex compost que reflecteix exactament l'ordre de les clàusules WHERE i ORDER BY. Així, el planificador de PostgreSQL pot realitzar cerques per condició d'índex sense tocar la resta de les files. Passar d'escanejar 1,7 milions de files a recuperar només les 20 necessàries marca la diferència entre una aplicació que respon en mil·lisegons i una que es queda bloquejada.

En l'àmbit del contingut multilingüe, la traducció sota demanda mitjançant APIs d'intel·ligència artificial podia disparar els costos i la latència. L'alternativa va ser construir una capa de memòria cau direccionada per contingut: es genera un hash SHA-256 del text font i es busca en una taula de traduccions. Si ja existeix, es retorna a l'instant; si no, un treballador en segon pla sol·licita la traducció al model d'IA (Gemini 2.5 Flash Lite) i l'emmagatzema de forma permanent. Així, cada text es tradueix una sola vegada i qualsevol petició posterior —ja sigui d'un usuari, un cercador o una rèplica en una altra regió— es serveix des de l'emmagatzematge local en menys de 5 ms. És un enfocament que encaixa perfectament amb els principis d'aplicacions a mida eficients i rendibles.

La gestió d'imatges i contingut generat per usuaris també es va beneficiar de restriccions a nivell de base de dades. En lloc d'implementar regles complexes de rate limiting a la capa d'aplicació, es va afegir una restricció única que impedeix que un mateix usuari enviï més d'un suggeriment per producte. La pròpia base de dades garanteix l'atomicitat i prevé abusos sense necessitat de lògica addicional. Això és un exemple de com un programari a mida pot integrar la seguretat i la integritat des de l'esquema, no des del codi.

Tot aquest treball demostra que no es necessita infraestructura cara per oferir un rendiment excel·lent. Amb una VM ARM de 6 GB a Oracle Cloud Free Tier i cost zero d'allotjament, s'aconsegueix servir 1,7 milions de productes, 41.000 alertes de retirada governamental i més de 100.000 queixes de la comunitat en 7 idiomes, tot en 66 ms de mitjana per pàgina. Darrere d'aquestes xifres hi ha decisions de disseny que prioritzen la precisió on realment importa i accepten la consistència diferida on és raonable.

Si aquest tipus d'optimització ressona amb els desafiaments que afronta la teva organització, a Q2BSTUDIO oferim serveis que van des de la consultoria en serveis cloud AWS i Azure fins al desenvolupament d'ia per a empreses, passant per ciberseguretat, serveis intel·ligència de negoci amb Power BI, i implementació d'agents IA automatitzats. Cada projecte s'aborda amb un enfocament d'enginyeria precís, mesurant on la precisió en temps real és indispensable i on una solució asíncrona o amb consistència eventual és l'opció més intel·ligent.

El més interessant d'aquest cas és que no va requerir eines exòtiques. Només va requerir ser rigorós en la definició d'índexs, valent per canviar la forma de comptar registres, i disciplinat en la gestió de la memòria cau de traduccions. I, per descomptat, comptar amb l'acompanyament d'un equip que entén com transformar restriccions de recursos en oportunitats d'innovació. Si t'agradaria explorar com aplicar principis similars a la teva pròpia infraestructura, no dubtis a contactar-nos.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.