Как сохранить связь с базой данных? - PullRequest
0 голосов
/ 21 сентября 2009

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

Любое хорошее решение?

Ответы [ 2 ]

1 голос
/ 21 сентября 2009

Можете ли вы уточнить:

  • Вы пытаетесь установить постоянное соединение?
  • работают базовые запросы MySQL (например, SELECT 'hard-coded' FROM DUAL)
  • сколько времени занимает запрос MySQL для вашего вызова ajax (например, если вы запускаете его из командной строки mysql или из GUI-клиента).
  • как часто вы пишете в таблицы MySQL, используемые в вашем запросе AJAX?

Ответы на эти вопросы должны помочь исключить другие проблемы, которые не имеют ничего общего с установлением постоянного соединения: базовое подключение к базе данных, индексация таблиц / медленный SQL, аннулирование кэша MySQL и т. Д.

0 голосов
/ 21 сентября 2009

Скорее всего, проблема в том, что вы НЕ открываете соединение, а фактически обслуживаете запрос. последующие вызовы выполняются быстро из-за кэша запросов mysql.

что вам нужно сделать, это искать медленные запросы mysql, например, включив медленный журнал запросов или просматривая сервер в режиме реального времени, используя mytop или «SHOW PROCESSLIST», чтобы увидеть, существует ли запрос, который занимает слишком много времени если вы нашли его, используйте EXPLAIN, чтобы убедиться, что он правильно проиндексирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...