Сегодня, благодаря чуткому саппорту одного из моих хостеров, выловили одну конструкцию, которая перегружала сервер донельзя.
А дело было в следующем несложном запросе MySQL:
SELECT * FROM mybigtable ORDER BY RAND()
В зависимости от сайта (в основном это были магазины на основе shopxml) таблица, из которой делалась выборка (нужно было 2-20 случайных позиций), содержала от 100 до 60 000 записей. В моменты особой активности пользователей и поисковых роботов на сервере наступали темные часа – load_average: 30 – это, как известно, крайне неуютная нагрузка.
Читать полностью »