Есть у меня один клиент с магазином всякого-всякого.
Двиг магазина какой-то самописный, где хозяйничает у него свой погромист, который все это дело, соответственно погромирует.
И есть у него один презабавный запрос в мускуле (innodb), который любит забивать всю работу мускуля к херам:
Запрос возвращает чуть больше 5к строк и иногда выполняется по 14 секунд, иногда по 30.
Смотрим, как по учебнику
Так и не понял, какого хрена не используется ни один индекс для талбицы ecs_taobaosruruorder_goods. но если мне память не изменяет, то SUM() как бы должен ответить на этот вопрос кэпом.
ОК, идем дальше:
да, кеш я отключил специально. Но что за нафиг и пчему так долго копичет в tmp_table? Особенно учитывая тот факт, что tmpdir уже хз сколько успешно сидит на tmpfs и ниразу не вылазит на диск - места ему хватает.
Мусколь просто ни хуя не понял чего от него хотел этот "погромист", и по этому на всякий случай решил не включать индексы))) Я собственно тоже не понял, даже интересно зачем может понадобиться такой запрос)))
> SELECT og.goods_sn num_iid, SUM(og.goods_number) AS goods_number FROM `ecs_taobaosruruorder_info` AS o, `ecs_taobaosruruorder_goods` AS og WHERE 1 GROUP BY og.goods_sn ORDER BY goods_number DESC;
Это декартово произведение?
> Так и не понял, какого хрена не используется ни один индекс для талбицы ecs_taobaosruruorder_goods
Если нет условия выборки - то один хрен читать все строки. Любая БД сообразит что читать ещё и индексы - только преумножать IO без какой-либо пользы.
Re:[mysql] перфомансы и погромисты
Мусколь просто ни хуя не понял чего от него хотел этот "погромист", и по этому на всякий случай решил не включать индексы))) Я собственно тоже не понял, даже интересно зачем может понадобиться такой запрос)))
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.70 Safari/537.17