212 votes

Qu'est-ce que la mise en commun de bases de données ?

Je voulais juste connaître le concept de pooling de connexion à une base de données et comment il est réalisé.

336voto

paxdiablo Points 341644

Base de données connexion Le pooling est une méthode utilisée pour garder les connexions aux bases de données ouvertes afin qu'elles puissent être réutilisées par d'autres.

En général, l'ouverture d'une connexion à une base de données est une opération coûteuse, surtout si la base de données est distante. Vous devez ouvrir des sessions réseau, vous authentifier, faire vérifier les autorisations, etc. La mise en commun maintient les connexions actives de sorte que, lorsqu'une connexion est demandée ultérieurement, l'une des connexions actives est utilisée de préférence à la création d'une autre.

Reportez-vous au schéma suivant pour les prochains paragraphes :

  +---------+
  |         |
  | Clients |
+---------+ |
|         |-+  (1)   +------+   (3)    +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
|         |    |     +------+          +----------+
+---------+    |         ^
               |         | (2)
               |     /------\
               |     | Pool |
               |     \------/
           (4) |         ^
               |         | (5)
               |     +-------+   (6)   +-----------+
               #===> | Close | ======> | RealClose |
                     +-------+         +-----------+

Dans sa forme la plus simple, il s'agit simplement d'un appel d'API similaire (1) à un appel d'API d'ouverture de connexion qui est similaire à l'appel "réel". Il vérifie d'abord le pool pour une connexion appropriée (2) et, si une est disponible, elle est donnée au client. Sinon, une nouvelle connexion est créée (3).

Une "connexion appropriée" est juste une connexion qui a déjà a l'accès à la base de données en utilisant les informations correctes (telles que l'instance de la base de données, les informations d'identification, et éventuellement d'autres éléments).

De même, il y a un appel proche de l'API (4) qui n'appelle pas réellement la fonction réel Il ne ferme pas la connexion, mais la place dans le pool (5) pour une utilisation ultérieure. À un moment donné, les connexions du pool peuvent être en fait fermé (6).

C'est une explication assez simpliste. Les implémentations réelles peuvent être capables de gérer des connexions à plusieurs serveurs et plusieurs comptes d'utilisateurs, elles peuvent pré-allouer une certaine base de connexions afin que certaines soient prêtes immédiatement, et elles peuvent effectivement fermer les anciennes connexions lorsque le schéma d'utilisation se calme.

159voto

zengr Points 14506

Les images parlent mille mots (paxdiablo a donné une description impressionnante) :

alt text

Source :

40voto

Oddant Points 1063

Comme son nom l'indique. Si plusieurs personnes veulent nager, elles peuvent le faire dans la même piscine. Est-il vraiment utile de construire une nouvelle piscine chaque fois que quelqu'un s'y ajoute ? Le temps et le coût sont une priorité.

19voto

Peter Points 81

La mise en commun des connexions aux bases de données consiste simplement à mettre en cache les connexions aux bases de données afin qu'elles puissent être réutilisées la prochaine fois pour réduire le coût de l'établissement d'une nouvelle connexion chaque fois que nous voulons nous connecter à une base de données.

2voto

Sandhya Saini Points 11

Le concept de mise en commun des connexions n'existe pas seulement en Java mais dans de nombreux langages de programmation. La création d'un nouvel objet de connexion étant coûteuse, un nombre fixe de connexions est établi et maintenu dans le cycle de vie, créant ainsi un pool virtuel. Java Juste ( http://javajust.com/javaques.html ) voir la question 14 sur cette page

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X