У меня есть таблица базы данных с 5 миллионами строк, я бегу:Почему этот запрос диапазона дат так медленно?
select
*
from
tbl
where
datetime_created
between
'2014-10-01 00:00:00' and
'2014-10-31 23:59:59'
потребовалось 54 секунд, чтобы вернуть 428k результаты
Колонны на ТПС:
id (int pk auto inc)
actor (varchar)
action (enum)
target (varchar)
is_successful (tinyint)
datetime_created (datetime)
Индекс :
datetime_created (datetime_created, action, target, is_successful)
Любые идеи о том, как я могу улучшить это?
редактировать:
EXPLAIN результаты:
select_type: simple
type: range
possible keys
datetime_created
key: datetime_created
key_len: 8
ref: null
rows: 359569
extra: using index condition
префикс объяснить перед запросом и посмотреть, что он делает – Khanna111
explain: select_type: simple, type: range, возможные ключи: datetime_created, key: datetime_created, key_len: 8, ref: null, rows: 359569, extra: using index условие – john
объясняет, что он использует индекс, но производительность по-прежнему очень плохая. – john