В чем преимущество объединения соединений и сообщений?

Может кто-нибудь объяснить, что такое 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

Существует три причины использования пул:

  • Приобретение нового подключения дорого. Некоторые методы управления базами данных системы даже начинают совершенно новую сервер для каждого соединения.

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

  • Создание подготовленных операторов также дорого для некоторых драйверов, и пул соединений может кэшировать утверждения для соединений по запросам.