Accès aux données
PostgreSQL depuis Node, sans injection ni connexion perdue.
Accès aux données
Un service fonctionne parfaitement pendant des semaines, puis se fige un mardi après-midi. Aucune erreur, aucun pic de charge : simplement toutes les requêtes qui attendent, indéfiniment. Le diagnostic est presque toujours le même — un chemin de code emprunte une connexion au groupe et ne la rend jamais, parce qu'une exception est survenue entre l'emprunt et la libération. Après quelques centaines d'occurrences, le groupe est vide, et toute nouvelle requête attend une connexion qui ne reviendra jamais.
L'autre panne majeure de cette couche est l'injection SQL, et elle survient presque toujours pour la même raison : quelqu'un a construit une requête par concaténation de chaînes parce que le paramétrage ne fonctionnait pas pour son cas — un nom de colonne dynamique, une clause IN de taille variable, un tri configurable. Ces trois cas ont des solutions propres, et cette leçon les donne. Le fil conducteur : une connexion s'emprunte et se rend toujours, et une valeur venant du client ne rejoint jamais le texte d'une requête.
Le groupe de connexions
Ouvrir une connexion PostgreSQL coûte plusieurs millisecondes — poignée de main TCP, authentification, création d'un processus serveur côté base. Un groupe maintient un ensemble de connexions ouvertes et les prête.
Commentaires
Les commentaires sont alimentés par GitHub Discussions
Connectez-vous avec GitHub pour participer à la discussion