В чем преимущество объединения соединений и сообщений?
Может кто-нибудь объяснить, что такое Connection and Statement Pooling и какова польза от неохлаждаемых DataSources? Я пытаюсь понять, когда рекомендуется использовать такую технологию, как c3p0 или proxool в проекте. Мне нужно сначала понять, что они делают, и когда интересно их использовать. Большое вам спасибо.
Ответы
Ответ 1
Счастливое соединение
Так легко создавать новое соединение каждый раз. Одна строка:, что все, что требуется. Не о чем думать. Великая жизнь.
Держитесь. Вы едите на тарелке?
![enter image description here]()
Вы бросаете свою тарелку после каждого использования?
Нет, вы моете его и кладете на тарелку для посуды, так что вы можете использовать его снова на следующей еде. Покупка новых пластин каждый раз не может быть и речи. Если вы это сделаете, вы потратите достаточно денег, чтобы купить новый iPad за год.
Подумайте о пулах соединений снова.
Но на этот раз соединения - это ваши тарелки, пул подключения - ваша тарелка для посуды. Ваш кошелек и ваша энергия представляют собой системные ресурсы (память и пропускная способность).
Промыть или потратить?
Что бы вы предпочли сделать:
а. мыть посуду
б. или бегать в торговый центр каждый прием пищи и покупать новые тарелки?
В то время как есть задачи, связанные с объединением пулов, это уменьшает налогообложение в долгосрочной перспективе по сравнению с созданием новых подключений каждый раз. Ключ в том, чтобы знать, сколько пластин (соединений) вашей семьи (приложения) понадобится в любой день.
Пулы могут использоваться для соединений с базами данных, потоков, объектов beans и других factory -удаленных объектов.
Ответ 2
Создание сетевого подключения к серверу базы данных (относительно) дорого.
Аналогично, запрашивая сервер для подготовки инструкции SQL (относительно) дорого.
Используя пул соединений/операторов, вы можете повторно использовать существующие соединения/подготовленные инструкции, избегая затрат на инициирование соединения, разбора SQL и т.д.
Ответ 3
Я не знаком с c3p0, но преимущества объединения соединений и утверждений включают в себя:
- Производительность
. Подключение к базе данных дорого и медленно. Объединенные соединения могут быть физически подключены к базе данных и распределены между различными компонентами, которым необходим доступ к базе данных. Таким образом, стоимость подключения оплачивается один раз и амортизируется на всех потребляющих компонентах.
-
Диагностика. Если у вас есть одна подсистема, ответственная за подключение к базе данных, становится легче диагностировать и анализировать использование подключения к базе данных.
- ремонтопригодность
. Опять же, если у вас есть одна подсистема, ответственная за передачу соединений с базой данных, ваш код будет легче поддерживать, чем если бы каждый компонент подключался к самой базе данных.
Ответ 4
Подключение и отключение от базы данных - дорогостоящая операция. Путем использования пула вы можете написать свой код, чтобы открывать и закрывать соединения, но пул решает, когда на самом деле это делать, оставляя определенное количество соединений открытым в течение определенного времени.
Составление отчетов? Вы говорите о кэшировании инструкций?
Ответ 5
Цитирование книги JAVA Persistance с Hibernate
Существует три причины использования пул:
-
Приобретение нового подключения дорого. Некоторые методы управления базами данных системы даже начинают совершенно новую сервер для каждого соединения.
-
Поддержание большого количества простаивающих подключений является дорогостоящим для управления базой данных системы, и пул может оптимизировать использование простоя соединений (или отключите, если запросов нет).
-
Создание подготовленных операторов также дорого для некоторых драйверов, и пул соединений может кэшировать утверждения для соединений по запросам.