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

Используйте fmod() из <cmath>. Если вы не хотите включать заголовочный файл C (примечание: U не может быть float или double):

template<typename T, typename U>
constexpr T dmod (T x, U mod)
{
    return !mod ? x : static_cast<long long>(x) % mod + x - static_cast<long long>(x);
}

//Usage:
double z = dmod<double, unsigned int>(14.3, 4);
double z = dmod<long, short>(14, 4);
//This also works:
double z = dmod(14, 4);
double z = dmod(14, 0);
double z = dmod(myFirstVariable, someOtherVariable);
17
задан Joachim Sauer 19 January 2009 в 11:24
поделиться

4 ответа

Создание сетевого соединения с сервером базы данных является (относительно) дорогим. Аналогично просьба, чтобы сервер подготовил SQL-оператор, является (относительно) дорогой.

Используя пул соединения/оператора, можно снова использовать существующие соединения / подготовленные операторы, избежав стоимости инициирования соединение, анализируя SQL и т.д.

13
ответ дан 30 November 2019 в 10:04
поделиться

Я не знаком с c3p0, но преимущества объединения соединений и операторов включают:

  1. Производительность. Соединение с базой данных является дорогим и медленным. Объединенные соединения можно оставить физически подключенными к базе данных и совместно использовали среди различных компонентов тот доступ к базе данных потребности. Тем путем стоимость соединения оплачена на этот раз и амортизирована через все компоненты потребления.

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

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

7
ответ дан 30 November 2019 в 10:04
поделиться

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

Объединение оператора? Вы говорите о кэшировании оператора?

3
ответ дан 30 November 2019 в 10:04
поделиться

Заключение в кавычки книги Постоянства JAVA с В спящем режиме

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

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

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

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

1
ответ дан 30 November 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: