Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблема с бд
Форумы портала PHP.SU » PHP » Программирование на PHP » Проблема с бд

Страниц (2): [1] 2 »
 

1. awiz - 05 Мая, 2010 - 16:52:20 - перейти к сообщению
У меня есть проблема, достаточно неприятная: в среднем каждый 200-ый запрос в скриптах (во всех) получает ошибку ( а их на каждой странице много), поэтому приходится перегружать все время заново страницу.
Запросы все правильные, ошибка:
CODE (html):
скопировать код в буфер обмена
  1. Lost connection to MySQL server during query.

Почему соединение ето все время теряется? Огорчение
Что подскажете делать?
2. SAD - 05 Мая, 2010 - 17:02:52 - перейти к сообщению
Когда же поиском научитесь пользоваться... http://www[dot]hostcms[dot]ru/forums/22/1939/
3. awiz - 05 Мая, 2010 - 17:07:46 - перейти к сообщению
SAD пишет:
Когда же поиском научитесь пользоваться... http://www[dot]hostcms[dot]ru/forums/22/1939/

спасибо! попробуем...
4. JustUserR - 05 Мая, 2010 - 17:57:40 - перейти к сообщению
awiz пишет:
В среднем каждый 200-ый запрос в скриптах (во всех) получает ошибку ( а их на каждой странице много), поэтому приходится перегружать все время заново страницу
Сделайте статическую HTML-страницу с соответствующим JS-скриптом и получайте информацию из базы динамически с помощью Iframe/AJAX - в таком случае будет последовательно выполняться ряд SQL-запросов и потом их обработка и передача клиенту в браузер
5. awiz - 05 Мая, 2010 - 18:55:47 - перейти к сообщению
SAD пишет:
Когда же поиском научитесь пользоваться... http://www[dot]hostcms[dot]ru/forums/22/1939/

не помогло... поставил вместо 900 даже 1800- то же.
(Добавление)
JustUserR пишет:
awiz пишет:
В среднем каждый 200-ый запрос в скриптах (во всех) получает ошибку ( а их на каждой странице много), поэтому приходится перегружать все время заново страницу
Сделайте статическую HTML-страницу с соответствующим JS-скриптом и получайте информацию из базы динамически с помощью Iframe/AJAX - в таком случае будет последовательно выполняться ряд SQL-запросов и потом их обработка и передача клиенту в браузер

позно все переделивать уже...
6. JustUserR - 06 Мая, 2010 - 13:30:04 - перейти к сообщению
awiz пишет:
Позно все переделивать уже...
Да уж архитектурные просчеты тяжело исправляются
Конкретно в вашем случае можно попробовать следующее - если у вас выполяется один большой PHP-скрипт и в нем есть несколько запросов к БД - и времени между соседними SQL-запросами хватает на то что соединение разрывается - то попробуйте периодически делать фейковые запросы для поддержания соединения
7. awiz - 06 Мая, 2010 - 15:42:50 - перейти к сообщению
JustUserR пишет:
фейковые запросы для поддержания соединения

спасибо! Закатив глазки
а фейковые-это пустые?

p.s. при вызове функцй, где идет подключение к базе, а следующей строкой запрос- тоже бывает такое
8. JustUserR - 06 Мая, 2010 - 19:23:36 - перейти к сообщению
awiz пишет:
Спасибо! А фейковые-это пустые?
P.s. При вызове функцй, где идет подключение к базе, а следующей строкой запрос- тоже бывает такое
Пожалуйста! По сути фейковые запросы являются пустыми поскольку они не извлекают из БД никаких данных и не дают дополнительную нагрузку на SQL-сервер - но на самом деле это не просто пустой SQL-запрос а специальный такого рода SELECT * FROM dual (Если поддерживается таблица Dual) или какой-то еще нересурсоемкий запрос
С другой стороны если вы говорите что при выполнении SQL-запроса сразу после подключения к БД соединение тоже может отвалиться - то в таком случае очевидно отправка время от времени пустых запросов не поможет В таком случае дело в лимитах БД mysql - например может быть ограничина частота посылаемых SQL-запросов а также максимальное время на его исполнение
9. awiz - 06 Мая, 2010 - 19:50:49 - перейти к сообщению
JustUserR пишет:
или какой-то еще нересурсоемкий запрос
Это из серии SELECT 2+2 ?
JustUserR пишет:
дело в лимитах БД mysql - например может быть ограничина частота посылаемых SQL-запросов

а это уже с хостингом надо решать?
(Добавление)
JustUserR пишет:
дело в лимитах БД mysql - например может быть ограничина частота посылаемых SQL-запросов

ограничение идет на количество запросов в скрипте? на обновленной странице все происходит нормально, хотя запросов получается столько же
10. JustUserR - 07 Мая, 2010 - 14:55:20 - перейти к сообщению
awiz пишет:
Это из серии SELECT 2+2 ?
Да типа таких которые на самом деле не требуют обращения к таблицам в базе данных
awiz пишет:
Ограничение идет на количество запросов в скрипте? на обновленной странице все происходит нормально, хотя запросов получается столько же
Нет имелось в виду другое - а именно или максимальное число запросов от имени вашего SQL-пользователя в единицу времени - или обращений от CGI-скриптов с запускаемых от имени вашего unix-пользователя
Если подобный лимит является причиной ваших сбоев то это объясняется так - в определенный момент времени к вашему web-сайту происходит несколько запросов и почти одновременно запускаются инстанции PHP-скрипта и начинают обращения к БД - в результате чего некоторые из них получают отказ по превышению лимитов - однако при повторном запросе таких соединений уже оказывается меньше и запрос к БД выполняется
Возможным решением может быть проверка начилия соединения с БД из PHP-скрипта - и попытка перезапуска в случае его отсутствие
11. awiz - 07 Мая, 2010 - 15:08:01 - перейти к сообщению
JustUserR пишет:
получают отказ по превышению лимитов

изза ограничений PHP или хостинга?
да и отвалится может и на пятом запросе, а я думаю, что на 5 запросов точно лимит не будут стаивть... или будут?
(Добавление)
только что еще и такая ошибка была:
12. JustUserR - 07 Мая, 2010 - 15:18:59 - перейти к сообщению
awiz пишет:
Изза ограничений PHP или хостинга?
В любом случае текущие ограничения хоть PHP хоть Apache накладываются самим хостером - можете обратиться к ним и спросить о текущих лимитах в этом плане
13. awiz - 07 Мая, 2010 - 16:20:49 - перейти к сообщению
Цитата:
Hello,

If you see the error message 'MySQL server has gone away, it might be your script makes heavy queries or too many connections.

Please try using 'mysql_reconnect' command before each MySQL query and it should do the trick.

Also, these errors would not be experienced on an upgraded account.

то же говорят
14. EuGen - 07 Мая, 2010 - 17:36:21 - перейти к сообщению
Хостинг какой? Возможно, стоит попробовать VDS
Судя по описанным проблемам, ошибка в недостаточной пропускной способности или в неправильной настройке MySQL сервера.
Возможно, есть ограничение max_connections у хостера, тогда либо стоит изменить тарифный план либо сменить хостера.
Стоит так же уточнить у их техподдержки параметры ограничений, накладываемых на пользовательские приложения.
15. awiz - 07 Мая, 2010 - 17:54:19 - перейти к сообщению
EuGen пишет:
Хостинг какой? Возможно, стоит попробовать VDS
Судя по описанным проблемам, ошибка в недостаточной пропускной способности или в неправильной настройке MySQL сервера.
Возможно, есть ограничение max_connections у хостера, тогда либо стоит изменить тарифный план либо сменить хостера.
Стоит так же уточнить у их техподдержки параметры ограничений, накладываемых на пользовательские приложения.

000webhost
тарифный план===бесплатно, а в ответе и говорят, что на платном все ок, так что будем переходить наверно

 

Powered by ExBB FM 1.0 RC1