Вы можете использовать это как грубый «набор правил»:
ДА , используйте постоянные соединения, если:
- Существует только несколько приложений / пользователей, осуществляющих доступ к базе данных, т. Е. Вы не получите 200 открытых (но, вероятно, неактивных) подключений, поскольку на одном хосте совместно используются 200 разных пользователей.
- База данных работает на другом сервере, к которому вы обращаетесь по сети
- (одно) приложение очень часто обращается к базе данных
НЕТ , не используйте постоянные соединения, если:
- Вашему приложению необходим доступ к базе данных только 100 раз в час.
- У вас есть много веб-серверов, обращающихся к одному серверу базы данных
- Вы используете Apache в режиме prefork. Он использует одно соединение для каждого дочернего процесса, который может довольно быстро нарастить. (через @Powerlord в комментариях)
Использование постоянных соединений значительно быстрее, особенно если вы обращаетесь к базе данных по сети. Это не имеет большого значения, если база данных работает на том же компьютере, но все же немного быстрее. Однако, как следует из названия, соединение является постоянным, то есть оно остается открытым, даже если оно не используется.
Проблема в том, что в «конфигурации по умолчанию» MySQL допускает только 1000 параллельных «открытых каналов». После этого в новых соединениях будет отказано (вы можете настроить этот параметр). Так что, если у вас есть, скажем, 20 веб-серверов с каждыми 100 клиентами, и каждый из них имеет доступ только к одной странице в час, простая математика покажет вам, что вам потребуется 2000 параллельных подключений к базе данных. Это не сработает.
Ergo: используйте его только для приложений с большим количеством запросов.