У меня есть следующий запрос:
SELECT COUNT(sid),fDate,COUNT(DISTINCT(cid))
FROM forwarding
WHERE fDate BETWEEN "2011-06-01" AND "2011-06-30"
GROUP BY fDate
Объяснение дает мне следующий вывод:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE forwarding index fDate,fDate_2 fDate_2 3 1481127 Using where
Вы видите, что данных много.Общее рабочее время составляет 12 секунд.Как я могу улучшить производительность?Я не знаю, что я могу сделать больше, как установить индекс.
Вот мои индексы для этой таблицы:
fDate (fDate, f_shop)
fDate2(dDate),
f_shop(f_shop)
Спасибо за вашу помощь.
ОБНОВЛЕНИЕ:
Теперь я добавил столбец в мое предложение where, и запрос был намного медленнее, чем раньше.
SELECT COUNT(sid),fDate,COUNT(DISTINCT(cid)) FROM forwarding
WHERE fDate BETWEEN "2011-06-01" AND "2011-06-30" AND f_shop=10077 GROUP BY fDate
У меня есть индекс для forwardDate и f_shop, но производительность снижается.Какое идеальное решение?Спасибо