Connection Pooling
NestJS 🔴 SeniorDéfinition
Technique de réutilisation de connexions base de données via un pool precharge. Évite le coût de création/destruction de connexions a chaque requête.
Analogie
Comme un parc de voitures partagées : au lieu que chacun acheté sa voiture, on partage un pool.
Exemple de code
TypeOrmModule.forRoot({
type: 'postgres',
host: 'localhost',
extra: {
max: 20,
idleTimeoutMillis: 30000,
},
})
Cas d'usage
Optimiser les performances en production en configurant le pool selon la charge attendue.
Anti-pattern
Termes liés
En entretien
Explique-moi ce qu'apporte le connection pooling.
C'est une technique qui réutilise des connexions base de données déjà ouvertes via un pool préchargé, au lieu de créer/détruire une connexion à chaque requête. C'est comme un parc de voitures partagées plutôt que chacun achète la sienne.
Comment tu réglerais la taille du pool en prod, et que se passe-t-il si tu ne le configures pas ?
Il faut dimensionner le pool (par exemple max et idleTimeoutMillis) selon la charge attendue de l'application. Sans pool, chaque requête crée une nouvelle connexion et finit par saturer la base de données.
Comment tu débuggerais une base de données qui sature en connexions ?
Je vérifierais d'abord si un pool est bien configuré au niveau de TypeOrmModule.forRoot, puis si sa taille max est cohérente avec le nombre d'instances de l'app qui tapent dessus en parallèle.
Fiche mise à jour le 2026-09-27