Что такое пул баз данных?
Я просто хотел узнать концепцию пула соединений с базой данных и как это достигается.
5 ответов
база данных подключение объединение-это метод, используемый для открытия соединений с базой данных, чтобы их могли повторно использовать другие.
как правило, открытие соединения с базой данных является дорогостоящей операцией, особенно если база данных удалена. Вы должны открыть сетевые сеансы, аутентифицировать, проверить авторизацию и так далее. Объединение в пул сохраняет соединения активными, так что при последующем запросе соединения один из активных используется вместо необходимости создайте еще один.
обратитесь к следующей диаграмме для следующих нескольких абзацев:
+---------+
| |
| Clients |
+---------+ |
| |-+ (1) +------+ (3) +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
| | | +------+ +----------+
+---------+ | ^
| | (2)
| /------\
| | Pool |
| \------/
(4) | ^
| | (5)
| +-------+ (6) +-----------+
#===> | Close | ======> | RealClose |
+-------+ +-----------+
в простейшей форме это просто аналогичный вызов API (1) для вызова API с открытым соединением, который похож на "реальный". Это сначала проверяет пул на наличие подходящего соединения (2) и, если оно доступно, оно предоставляется клиенту. В противном случае создается новый (3).
аналогично, есть вызов close API (4), который фактически не вызывает реальные close-connection, скорее он помещает соединение в пул (5) для последующего использования. В какой-то момент соединения в пуле могут быть на самом деле закрытые (6).
Это довольно упрощенное объяснение. Реальные реализации могут обрабатывать соединения с несколькими серверами и несколькими учетными записями пользователей, они могут предварительно выделять некоторые базовые соединения, поэтому некоторые из них готовы немедленно, и они могут фактически закрывать старые соединения, когда шаблон использования затихает.
вы можете использовать библиотеку Apache commons Для реализации пула соединений прозрачно:http://commons.apache.org/dbcp/
DBCP также поддерживает пул гибернации:http://www.informit.com/articles/article.aspx?p=353736&seqNum=4
концепция объединения соединений не только в Java, но и на многих языках программирования. Создание нового объекта подключения является дорогостоящим, поэтому фиксированное количество подключений выполняется и поддерживается в жизненном цикле создание виртуального пула Java Просто (http://javajust.com/javaques.html ) см. вопрос 14 на этой странице
Как следует из названия. Если несколько человек хотят плавать, они могут плавать в одном и том же бассейне, имеет ли смысл строить новый бассейн каждый раз, когда кто-то добавляет ? Время и стоимость-приоритет.