База данных соединение объединение в пул - это метод, используемый для сохранения открытых соединений с базой данных, чтобы их могли использовать другие.
Как правило, открытие соединения с базой данных является дорогой операцией, особенно если база данныхудаленВы должны открыть сетевые сессии, пройти аутентификацию, проверить авторизацию и так далее.Объединение в пул поддерживает соединения активными, поэтому при последующем запросе соединения одно из активных используется для создания другого.
См. Следующую схему для следующих нескольких абзацев:
+---------+
| |
| Clients |
+---------+ |
| |-+ (1) +------+ (3) +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
| | | +------+ +----------+
+---------+ | ^
| | (2)
| /------\
| | Pool |
| \------/
(4) | ^
| | (5)
| +-------+ (6) +-----------+
#===> | Close | ======> | RealClose |
+-------+ +-----------+
В простейшей форме это просто вызов API-вызова (1) с вызовом API открытого соединения, который похож на "настоящий" вызов.Сначала проверяется подходящее соединение для пула (2), и, если оно доступно, оно передается клиенту.В противном случае создается новый (3).
Аналогично, существует закрытый вызов API (4), который на самом деле не вызывает real close-connection, скорее он помещает соединение вбассейн (5) для последующего использования.В какой-то момент соединения в пуле могут быть на самом деле закрыты (6).
Это довольно упрощенное объяснение.Реальные реализации могут быть в состоянии обрабатывать соединения с несколькими серверами и несколькими учетными записями пользователей, они могут предварительно выделить некоторую базовую линию соединений, чтобы некоторые были готовы немедленно, и они могут фактически закрывать старые соединения, когда шаблон использования успокаивается.