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 :: Версия для печати :: Виснет сайт при выполнении MYSQL запроса
Форумы портала PHP.SU » » Вопросы новичков » Виснет сайт при выполнении MYSQL запроса

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

1. dropoff - 06 Марта, 2018 - 10:11:37 - перейти к сообщению
Всем привет.

Ребята, такая проблема, уже устал...
При выполнении простейшего запроса, например на удаление
PHP:
скопировать код в буфер обмена
  1. DELETE FROM database WHERE id = 1

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

Что странно, так это то, что зависание всегда именно на определенных действиях. В остальном таких проблем нет совершенно. То есть именно работа с парой таблиц на удаление, обновление и добавление.
В этих таблицах записей совсем не много, от 10 и до 300.
Проставлены индексы и и запросы все по ключу без лишних данных в where.

Скрипт старый, работает еще mysql.
Раньше таблицы на которых виснет были MyISAM. Сделал InnoDB - толку нет.

Как быть?
2. marat-dev - 07 Марта, 2018 - 11:45:25 - перейти к сообщению
при удалении виснет это не изза бд а изза сервера
3. dropoff - 07 Марта, 2018 - 21:55:39 - перейти к сообщению
marat-dev пишет:
при удалении виснет это не изза бд а изза сервера

Ну там и при добавлении и при обновлении. Что делать с этим не понятно((
4. Vladimir Kheifets - 08 Марта, 2018 - 14:00:54 - перейти к сообщению
dropoff пишет:
Всем привет.

Ребята, такая проблема, уже устал...
При выполнении простейшего запроса, например на удаление
PHP:
скопировать код в буфер обмена
  1. DELETE FROM database WHERE id = 1

зависает сайт полностью.Как быть?

Добрый день!
Показывая запрос, видимо, Вы имели ввиду не database, а таблицу
CODE (SQL):
скопировать код в буфер обмена
  1. DELETE FROM TABLE WHERE id = 1

Попробуйте проверить, как отрабатывается тот же запрос в phpMyAdmin,
а в PHP, к mysql_query() не плохо бы добавить mysql_error()
Удачи!
5. dropoff - 11 Марта, 2018 - 09:22:09 - перейти к сообщению
Vladimir Kheifets пишет:
Показывая запрос, видимо, Вы имели ввиду не database, а таблицу

Да, таблицу. Не то написал.

Vladimir Kheifets пишет:
Попробуйте проверить, как отрабатывается тот же запрос в phpMyAdmin,

В phpmyadmin первый запрос на удаление выполняется дольше. Вот только сейчас проверил.
Сделал удаление и зависания вроде бы и нет..., но пока PMA обработал запрос прошло сек. 6-10.
Сделующий запрос точно такой же уже был моментальный.

mysql_error ничего не дает. сервер тупо виснет и после выводит ошибку с таймаутом.
6. dropoff - 12 Марта, 2018 - 07:29:02 - перейти к сообщению
Вторая проверка показала тоже самое.
Были выполнены два запроса на две "проблемные" таблицы, на которых и происходит зависание.
Через PMA виснет секунд по 10 первое выполение запроса на удаление.
Последующие запросы выполняются мгновенно.
7. andrewkard - 12 Марта, 2018 - 21:29:26 - перейти к сообщению
EXPLAIN пробовали?
https://dev[dot]mysql[dot]com/doc/refman[dot][dot][dot]/en/explain[dot]html

 

Powered by ExBB FM 1.0 RC1