PHP, MySQL и большое количество простых запросов - PullRequest
3 голосов
/ 30 августа 2010

Я реализую приложение, в котором будет много клиентов, запрашивающих множество небольших пакетов данных с моего веб-сервера.Теперь я не уверен, использовать ли постоянные подключения к базе данных или нет.База данных в настоящее время находится в той же системе, что и веб-сервер, и может подключаться через сокет, но это может измениться в ближайшем будущем.

Как я знаю, несколько выпусков PHP назад mysqli_pconnect был удален, поскольку он вел себя неоптимально.Между тем, похоже, что он снова вернулся.

Исходя из моего сценария, я полагаю, что у меня не будет другого шанса обрабатывать тысячи запросов в минуту, но с нагрузками постоянных соединений и конфигурацией MySQL, которая резервирует толькомало ресурсов на соединение, верно?

Спасибо за ваш вклад!

Ответы [ 3 ]

1 голос
/ 30 августа 2010

Что произошло, когда вы его проверили?

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

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

C.

1 голос
/ 30 августа 2010

Как говорится, ваш пробег может варьироваться, но у меня никогда не было хорошего опыта использования постоянных соединений из PHP, включая MySQL и Oracle (как ODBC, так и OCI8).Каждый раз, когда я проверял это, система не может повторно использовать соединения.При высокой нагрузке я в конечном итоге достигаю верхнего предела, когда у меня есть сотни незанятых соединений.

Поэтому я советую вам попробовать и выяснить, правильно ли ваша установка повторно использует соединения.Если он не работает должным образом, это не будет большой потерей в любом случае: открытие соединения MySQL не особенно дорого по сравнению с другими СУБД.

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

1 голос
/ 30 августа 2010

Являются ли постоянные соединения PHP плохими?

проблема там может быть только так много активных соединений между хостами «Apache» и хост «MySQL»

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

...