Пул соединений против соединения JDBC для каждого потока - PullRequest
0 голосов
/ 24 мая 2010

Какой из этих подходов лучше: пул соединений или соединения JDBC для каждого потока?

Ответы [ 3 ]

0 голосов
/ 01 сентября 2011

Определенно пул соединений.Абсолютно нет причин создавать новое соединение для каждого потока.Но, возможно, имеет смысл использовать одно и то же соединение для всего HTTP-запроса (особенно, если вам нужны транзакции).

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

0 голосов
/ 01 сентября 2011

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

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

0 голосов
/ 24 мая 2010

Пул соединений наверняка и почти всегда.

Создание нового подключения к базе данных очень дорого для производительности. А разные механизмы БД (в зависимости от лицензирования или просто настроек) имеют разное максимальное количество соединений (иногда оно даже 1, обычно не более 50).

Единственная причина для использования подключений по потокам - это если вы знаете, что существует определенное небольшое количество постоянных потоков (например, 10). Я не могу представить эту ситуацию в реальном мире.

...