Я планирую использовать MYSQL. Имеется ли расширение пула соединений? Или какая нормальная практика для подключения? Это тот, который используется везде …
mysqli_connect("localhost", "xxx", "xxx", "test");
Люди используют только обычный mysql_connect
или pconnect
..? Насколько лучше pconnect
и какие настройки следует выполнять для PConnect?
Вы когда-нибудь использовали mysql_pconnect()
? mysql_pconnect()
очень похож на mysql_connect()
с двумя основными отличиями.
Во-первых, при подключении функция сначала попытается найти (постоянную) ссылку, которая уже открыта с тем же хостом, именем пользователя и паролем. Если он найден, идентификатор для него будет возвращен вместо открытия нового соединения.
Во-вторых, соединение с сервером SQL не будет закрыто при завершении выполнения скрипта. Вместо этого ссылка останется открытой для будущего использования ( mysql_close()
не будет закрывать ссылки, установленные mysql_pconnect()
).
Поэтому этот тип ссылок называется «постоянным»,
Проверьте это здесь
Поддержка постоянных подключений была введена в PHP 5.3 для расширения mysqli. Поддержка уже присутствовала в PDO MYSQL и ext / mysql. Идея постоянных соединений заключается в том, что соединение между клиентским процессом и базой данных может быть повторно использовано клиентским процессом, а не создаваться и уничтожаться несколько раз. Это уменьшает накладные расходы при создании новых подключений каждый раз, когда требуется, поскольку неиспользуемые соединения кэшируются и готовы к повторному использованию.
В отличие от расширения mysql, mysqli не предоставляет отдельную функцию для открытия постоянных соединений. Чтобы открыть постоянное соединение, вы должны добавить p: к имени хоста при подключении.
источник: http://www.php.net/manual/en/mysqli.persistconns.php
sample code: $GLOBALS["mysqli"] = new mysqli('p:localhost', 'username', 'password', 'db_name');
Извините за обман, не видел других ответов.
используйте mysqli или расширение PDO вместо старого расширения mysql.
вы можете указать конструкцию mysqli_connect
или mysqli::__construct
для использования постоянного соединения, если вы префикс своего имени хоста 'p:'
Это старый вопрос, но я хотел добавить свои два цента, поскольку я рассматривал эту же проблему. Начиная с PHP 5.3, mysqli поддерживает постоянные соединения, вам просто нужно добавить p: в начало имени хоста.
Если вы используете Apache, пытались ли вы смотреть на пул соединений с mysql через модуль Apache mod_dbd? Он поддерживает объединение пулов для MySQL. http://httpd.apache.org/docs/2.2/mod/mod_dbd.html
Существует 3 функции подключения:
mysql_connect : обычное соединение, без объединения, вы не можете выполнять хранимые процедуры (просто sql)
mysql_pconnect : объединенное соединение, вы не можете выполнять хранимые процедуры (просто sql)
mysqli_connect : обычное соединение, без объединения, вы можете выполнять хранимые процедуры (требуется mysql 5 или выше)
mysqli_pconnect : НЕ СУЩЕСТВУЕТ. Не существует встроенной функции соединения как для обработки хранимых процедур, так и для объединения
Мой совет (через опыт и серфинг):
Если вам нужны хранимые процедуры, оставьте пул и используйте mysqli_connect
Если вам не нужны хранимые процедуры, используйте mysql_pconnect
Не совсем ответ, но я думаю, вы также можете рассмотреть PHP Data Objects (PDO) http://php.net/manual/en/book.pdo.php И PDO для MySQL http://php.net/manual/en/ ref.pdo-mysql.php