Подтвердить что ты не робот

Соединение php с пулом mysql

Я планирую использовать MYSQL. Имеется ли расширение пула соединений? Или какая нормальная практика для подключения? Это тот, который используется везде...

mysqli_connect("localhost", "xxx", "xxx", "test");

Используют ли люди только обычные mysql_connect или pconnect..? Насколько лучше pconnect и какую настройку следует выполнять для PConnect?

4b9b3361

Ответ 1

Вы когда-нибудь использовали mysql_pconnect()? mysql_pconnect() действует очень похоже на mysql_connect() с двумя основными отличиями.

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

Во-вторых, соединение с SQL-сервером не будет закрыто при завершении выполнения script. Вместо этого ссылка останется открытой для дальнейшего использования (mysql_close() не будет закрывать ссылки, установленные mysql_pconnect()).

Этот тип ссылки поэтому называется "постоянным"

Отметьте здесь

Ответ 2

Поддержка постоянной поддержки была введенный в PHP 5.3 для mysqli расширение. Поддержка уже присутствовала в PDO MYSQL и ext/mysql. Идея за постоянными соединениями соединение между клиентским процессом и база данных может быть повторно использована клиентский процесс, а не создано и уничтожено несколько раз. Это уменьшает накладные расходы при создании свежие соединения каждый раз, когда вы требуется, поскольку неиспользуемые соединения кэшированы и готовы к повторному использованию.

В отличие от расширения mysql, mysqli не обеспечивает отдельную функцию для открытия постоянных соединений. Для откройте постоянное соединение, которое вы должны preend p: к имени хоста, когда подключения.

источник: http://www.php.net/manual/en/mysqli.persistconns.php

sample code:
$GLOBALS["mysqli"] = new mysqli('p:localhost', 'username', 'password', 'db_name');

edit: Извините за обман, не увидели других ответов.

Ответ 3

используйте mysqli или расширение PDO вместо старого расширения mysql.

вы можете указать mysqli_connect или mysqli::__construct использовать постоянное соединение, если вы префикс своего имени хоста на "p:"

http://php.net/manual/en/mysqli.construct.php

Ответ 4

Это старый вопрос, но я хотел добавить свои два цента, поскольку я рассматривал эту проблему. Начиная с PHP 5.3, mysqli поддерживает постоянные соединения, вам просто нужно добавить p: к началу имени хоста.

Если вы используете Apache, попробовали ли вы смотреть на пул соединений с mysql через модуль Apache mod_dbd? Он поддерживает объединение пулов для MySQL. http://httpd.apache.org/docs/2.2/mod/mod_dbd.html

Ответ 5

Существует 3 функции подключения:

mysql_connect: обычное соединение, без объединения, вы не можете выполнять хранимые процедуры (просто sql)

mysql_pconnect: объединенное соединение, вы не можете выполнять хранимые процедуры (просто sql)

mysqli_connect: обычное соединение, без объединения, вы можете выполнять хранимые процедуры (требуется mysql 5 или выше)

mysqli_pconnect: НЕ СУЩЕСТВУЕТ. Не существует встроенной функции соединения как для обработки хранимых процедур, так и для объединения

Мой совет (через опыт и серфинг):

Если вам нужны хранимые процедуры, опустите пул и используйте mysqli_connect

Если вам не нужны хранимые процедуры, используйте mysql_pconnect