Подтвердить что ты не робот

Что такое объединение базы данных?

Я просто хотел знать концепцию пула соединений с базой данных и как это достигается.

4b9b3361

Ответ 1

Пул соединений с базами данных - это метод, используемый для того, чтобы открывать подключения к базам данных, чтобы их можно было повторно использовать другими.

Как правило, открытие соединения с базой данных является дорогостоящей операцией, особенно если база данных удалена. Вы должны открыть сетевые сеансы, пройти проверку подлинности, проверить авторизацию и т.д. Объединение поддерживает активные соединения, так что при последующем запросе соединения один из активных используется вместо того, чтобы создавать другой.

Обратитесь к следующей диаграмме для следующих нескольких абзацев:

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

В нем простейшая форма, это просто похожий вызов API (1) на вызов API открытого соединения, который похож на "реальный". Сначала проверяется пул для подходящего соединения (2) и, если таковой имеется, предоставляется клиенту. В противном случае создается новый (3).

Аналогично, существует закрытый API-вызов (4), который фактически не вызывает реальное закрытое соединение, вместо этого он устанавливает соединение в пул (5) для последующего использования. В какой-то момент соединения в пуле могут быть фактически закрыты (6).

Это довольно упрощенное объяснение. Реальные реализации могут обрабатывать соединения с несколькими серверами и несколькими учетными записями пользователей, они могут предварительно выделить некоторые базовые соединения, так что некоторые из них будут готовы немедленно, и они могут фактически закрыть старые соединения, когда шаблон использования успокоится.

Ответ 2

Изображения говорят тысячу слов (paxdiablo дал удивительное описание):

alt text

Источник

Ответ 3

Как подсказывает название. Если несколько человек хотят плавать, они могут плавать в одном и том же бассейне, имеет ли смысл строить новый бассейн каждый раз, когда кто-то добавляет? Время и стоимость являются приоритетом.

Ответ 4

Пул соединений с базами данных - это просто кэширование соединений с базами данных, чтобы их можно было использовать повторно в следующий раз, чтобы снизить стоимость установления нового соединения каждый раз, когда мы хотим подключиться к базе данных.

Ответ 6

Концепция объединения пулов не только в Java, но и во многих языках программирования. Создание нового объекта подключения является дорогостоящим, поэтому фиксированное количество соединений создается и поддерживается на жизненном цикле, создавая виртуальный пул Java Just (http://javajust.com/javaques.html) см. Вопрос 14 на этой странице