Назад | Перейти на главную страницу

Зависание MySQL в Linux (Redhat) при запросах к большим таблицам

У нас есть сервер, на котором запущен LAMP, который содержит несколько сайтов zencart. Мы заметили проблему при попытке просмотреть заказы на одном из сайтов, и время ожидания истекло. Теперь, когда я это сделаю:

"select * from orders"

Все зависает, как и:

SHOW PROCESSLIST

Теперь в таблице заказов должно быть около 42000 заказов, не так ли она велика. Может ли кто-нибудь порекомендовать какие-либо хорошие диагностические методы, чтобы выяснить, что не так?

Думаю, проблема с вашим index. Ты можешь попробовать

OPTIMIZE TABLE `orders`
CHECK TABLE `orders`
REPAIR TABLE `orders`

Также вы можете попробовать сбросить и воссоздать.

Что происходит, когда вы выполняете запрос «объяснить выбор * из заказов»? и "выберите количество () из заказов »? Оператор Explain должен дать вам некоторое представление о том, что происходит с вашим запросом (он объясняет, как сервер будет его выполнять, и помогает диагностировать узкое место) и подсчитывать () сообщит вам, если упомянутые вами 42 000 все еще находятся в этом диапазоне.

Удалось решить это. Использование браузера запросов MySQL позволило мне увидеть текущие запущенные потоки. Было несколько интенсивных Quaries MyIsam, которые по какой-то причине блокировали стол. Я убил их, и отставание очистилось за секунды. Вернуться к норме. Ууп!