Подтвердить что ты не робот

Чрезвычайно медленный запрос UPDATE

Я заметил, что мой script стал очень медленным, затем я сузился до проблемы: это был запрос обновления. Странно, что запрос SELECT очень быстрый. В таблице содержится около 600 000 записей. И да, id - УНИКАЛЬНЫЙ ПЕРВЫЙ КЛЮЧ. Вот несколько примеров:

SELECT * FROM `tmp_pages_data` WHERE id = 19080 LIMIT 0 , 30

Showing rows 0 - 0 (1 total, Query took 0.0004 sec)

И теперь запрос на обновление:

UPDATE tmp_pages_data SET page_status = 1 WHERE id = 19080

1 row(s) affected. ( Query took 24.5968 sec )

Как вы можете видеть, выбор выполняется очень быстро, но обновление происходит медленно. Как это возможно?

4b9b3361

Ответ 1

Да, это очень странно. Единственное, о чем я могу думать, это то, что таблица tmp_pages_data заблокирована другой транзакцией, или строка с id = 19080 заблокирована другой транзакцией.

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

Ответ 2

Хорошо, сделано!

Мне пришлось перезапустить Apache, теперь он отлично работает (на самом деле я перезагрузил Ubuntu)!

UPDATE tmp_pages_data SET page_status =1 WHERE id =19080

1 row(s) affected. ( Query took 0.0004 sec )

Спасибо всем за ваши предложения:)