2010-03-14 3 views
6

Если у меня есть скрипт, который вставляет данные, то завершается, скрипт будет открыт 100 пользователями одновременно или в течение 2 минут.php pconnect vs connect

(На самом деле я делаю электронной почты отслеживания.)

Так pconnect лучше, или подключиться лучше уменьшить ресурс?

У меня есть, когда после вставки.

+0

Возможный дубликат [mysql \ _connect VS mysql \ _pconnect] (http://stackoverflow.com/questions/247807/mysql-connect-vs-mysql-pconnect) – rubo77

ответ

4

mysql_pconnect() отбрасывает открытое соединение в пул, который может использоваться любым другим запросом на тот же процесс. Таким образом, каждый работник держит соединение открытым до тех пор, пока оно не умрет. Это может быть приемлемым, если вы удерживаете число работников на низком уровне, но как только вы увеличиваете число рабочих, вам лучше перейти на mysql_connect(). Это займет немного больше времени на запрос, поскольку соединение должно выполняться каждый раз, но вы создадите столько соединений, сколько есть запросов, а не работников.

+1

Да, мой скрипт предназначен только для запроса, поэтому если У меня более 1000 ppl открывают скрипт и запускают его между 5 минутами, лучше использовать mysql_connect? – user192344

+1

Если в течение 5 минут есть 1000 человек, а ваш сценарий занимает в среднем 100 мс, это средний пользователь в среднем 0,3, что, вероятно, может быть связано с компьютером, встроенным в микроволновую печь. – Evert

2

connect использует меньше ресурсов (незавершенным экземплярам веб-сервера не нужно открывать соединение с базой данных), но pconnect немного быстрее (не нужно открывать новое соединение, оно уже существует).

+0

поэтому, если нужно меньше ресурсов, лучше использовать connect? , так как я волнуюсь об открытии много связи – user192344

+0

да это правильно .. – user262976

+1

«немного быстрее», что это значит? вы заметили бы разницу, если вы начнете 1000 запросов? – rubo77

0

Если вы используете pconnect, вы будете иметь много связей в спящем режиме с таким сценарием, который работает 100 раз в 2 минуты, и ваш mysql умрет.

Вы можете использовать mysql_connect() , mysql_close()

-1

mysql_pconnect(): это постоянное соединение с базой данных. вы не можете потерять соединение во время такой операции.

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

Я предлагаю mysql_pconnect() для подключения к базе данных.

+0

Не существует такой вещи, как постоянная, когда дело доходит до подключения к базе данных. «p» в pconnect означает постоянство; т.е. само соединение не отбрасывается при завершении обработки запроса (или когда работник умирает). AFAIK, это актуально только в контексте веб-сервера. –