У нас есть сервер, на котором запущен LAMP, который содержит несколько сайтов zencart. Мы заметили проблему при попытке просмотреть заказы на одном из сайтов, и время ожидания истекло. Теперь, когда я это сделаю:
"select * from orders"
Все зависает, как и:
SHOW PROCESSLIST
Теперь в таблице заказов должно быть около 42000 заказов, не так ли она велика. Может ли кто-нибудь порекомендовать какие-либо хорошие диагностические методы, чтобы выяснить, что не так?
Думаю, проблема с вашим index. Ты можешь попробовать
OPTIMIZE TABLE `orders`
CHECK TABLE `orders`
REPAIR TABLE `orders`
Также вы можете попробовать сбросить и воссоздать.
Что происходит, когда вы выполняете запрос «объяснить выбор * из заказов»? и "выберите количество () из заказов »? Оператор Explain должен дать вам некоторое представление о том, что происходит с вашим запросом (он объясняет, как сервер будет его выполнять, и помогает диагностировать узкое место) и подсчитывать () сообщит вам, если упомянутые вами 42 000 все еще находятся в этом диапазоне.
Удалось решить это. Использование браузера запросов MySQL позволило мне увидеть текущие запущенные потоки. Было несколько интенсивных Quaries MyIsam, которые по какой-то причине блокировали стол. Я убил их, и отставание очистилось за секунды. Вернуться к норме. Ууп!