Пул соединений в PHP

Можно ли кэшировать подключения к базе данных при использовании PHP, как в контейнере J2EE? Если да, то как?

    В php отсутствует объединение пулов .
    mysql_pconnect и пул соединений – это две разные вещи. Существует много проблем, связанных с mysql_pconnect и сначала вы должны прочитать руководство и тщательно его использовать, но это не объединение пулов.

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

    Мы можем сделать масштабирование соединений в php для этого, пожалуйста, перейдите по следующей ссылке: http://www.oracle.com/technetwork/articles/dsl/white-php-part1-355135.html

    Таким образом, объединение соединений в php.

    Как сказал Хулио, apache выпускает все ресурсы, когда запрос заканчивается для текущих запросов. Вы можете использовать mysql_pconnect, но вы ограничены этой функцией, и вы должны быть очень осторожны. Другой выбор – использовать singleton pattern, но ни один из них не объединяет.

    Это хорошая статья: http://blogs.oracle.com/opal/2007/01/highly_scalable_connection_poo.html

    Также прочитайте этот http://www.apache2.es/2.2.2/mod/mod_dbd.html

    Стойкие соединения не похожи на объединение пулов. Постоянное соединение в php будет использоваться повторно, только если вы сделаете несколько подключений db в рамках одного и того же контекста выполнения запроса / сценария. В большинстве типичных сценариев для веб-разработчиков вы будете быстрее удалять свои соединения, если используете mysql_pconnect, потому что ваш скрипт не сможет получить ссылку на любые открытые соединения при следующем запросе. Лучший способ использовать db-соединения в php – сделать экземпляр singleton объекта db, чтобы соединение повторно использовалось в контексте выполнения вашего скрипта. Это по-прежнему по меньшей мере 1 дБ подключается на каждый запрос, но это лучше, чем создание нескольких подключений db за каждый запрос.

    В php нет реального объединения пула db из-за характера php. Php не является сервером приложений, который может сидеть там между запросами и управлять ссылками на пул открытых подключений, по крайней мере, не без какого-либо крупного взлома. Я думаю, что в теории вы могли бы написать сервер приложений в php и запустить его как сценарий командной строки, который просто сидел бы там в фоновом режиме и поддерживал бы связку подключений db и передавал ссылки на них другим вашим скриптам, но я не знайте, возможно ли это на практике, как вы передадите ссылки из вашего сценария командной строки на другие сценарии, и я сомневаюсь, что он будет хорошо работать, даже если вы сможете это сделать. Во всяком случае, это главным образом спекуляция. Я просто заметил ссылку, которую кто-то еще отправил в модуль apache, чтобы разрешить пул соединений для серверов допроса, таких как php. Выглядит интересно: https://github.com/junamai2000/mod_namy_pool#readme

    Я полагаю, вы используете mod_php, не так ли?

    Когда файл PHP заканчивает выполнение всего его состояния, он убит, поэтому для пула соединений нет способа (в PHP-коде). Вместо этого вам приходится полагаться на расширения.

    Вы можете mysql_pconnect, чтобы ваши соединения не закрывались после завершения страницы, таким образом, они снова используются в следующем запросе.

    Это может быть все, что вам нужно, но это не то же самое, что и объединение пулов, поскольку нет способа указать количество подключений для поддержания открытости.

    Приветствия.

    Вы можете использовать MySQLi .

    Для получения дополнительной информации перейдите к разделу Объединение пулов @ http://www.php.net/manual/en/mysqli.quickstart.connections.php#example-1622.

    Обратите внимание, что объединение пулов также зависит от вашего сервера (например, Apache httpd) и его конфигурации.

    Вы не можете создавать пулы соединений вручную.

    Но вы можете использовать «встроенный» пул соединений с помощью функции mysql_pconnect .