У меня есть MySQL InnoDB таблицы, events
, с 3-мя рядами:Запрос MySQL занимает больше времени с индексами?
event_id ---> int
start ---> long
end ---> long
Я написал простой запрос для получения всех событий в пределах некоторого диапазона, что конфликт с другим событием:
select a.* from events a, events b
where a.event_id != b.event_id and
a.start < b.end and
b.start < a.end
В таблице имеет ~ 10K строк и занимает ~ 2 секунды для выполнения. При попытке настроить таблицу для повышения производительности я добавил индексы на столбцах start
и end
. По какой-то причине это резко замедлило производительность в 5x. Кто-нибудь знает или имеет какие-либо идеи, почему добавление этих индексов могло бы повредить производительности, что плохо?
Есть ли способ структурировать запрос, чтобы я мог хранить индексы (они будут помогать другим запросам), но все же выполнять перекрестное объединение и фильтр? – JaredC