max_user_connections и ajax - PullRequest
       4

max_user_connections и ajax

0 голосов
/ 23 марта 2011

Некоторые страницы на моем сайте заполняются многочисленными ajax-вызовами, часто 20+ ajax-вызовами, выполняемыми асинхронно.Проблема, с которой я сталкиваюсь, заключается в том, что каждый вызов создает новую mysql_connection, в результате чего я получаю ошибку 'max_user_connections', которая, как мне говорят, ограничена в 20. Я попытался отключить асинхронную синхронизацию, но в документации JQueryгосударства, это часто замораживает страницу.Я подумал о том, чтобы превратить это в 1 ajax-вызов и позволить php выполнить цикл, но идея заключалась в том, чтобы отображать каждый элемент по мере его доступности (некоторые данные собираются из внешних источников, поэтому время может отличаться)

Это можно исправить с помощью mysql_pconnect?

Ответы [ 2 ]

1 голос
/ 23 марта 2011

Может ли это быть исправлено с помощью mysql_pconnect?

Нет - вам нужно:

1) увеличить количество соединений, которые будет обрабатывать mysql (нерекомендуется - не масштабируемое решение без репликации)

2) улучшить скорость обработчика вызовов ajax (например, настройка запросов, кэширование на уровне базы данных / кода операции / http)

3) уменьшить частотувызовы ajax - например, пропуская вызов, если последний произошел в течение 500 мсек

0 голосов
/ 23 марта 2011

20 + Ajax-вызовы являются проблемой даже в отсутствие проблемы MySQL.Браузер не будет выполнять эти 20 вызовов одновременно, поскольку он ограничивает максимальное http-соединение (с одним домианом) до 2,4 или 8.

Я бы объединил эти запросы и довел число вызовов Ajax до 6 - 8.Как вы упомянули, остальные звонки получают данные из внешних источников.Эти вызовы также говорят с MySQL?
Кроме того, могут помочь следующие вещи:

  1. Можете ли вы кэшировать некоторые вещи (например, имя пользователя, полное имя пользователя) в сеансе http
  2. Можете ли вы кэшировать некоторые данные из MySQL в memcached или даже в файл?Когда данные становятся доступными, кеш можно обновить.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...