У меня проблемы с запросом в MySQL.Для построения графика я создаю временную таблицу с интервалами 'X SECOND' с этой простой структурой:
CREATE TEMPORARY TABLE intervals (date DATETIME NOT NULL PRIMARY KEY)
и запрашиваю этот SELECT:
SELECT COUNT(dt.Device) AS count, i.date
FROM intervals i LEFT JOIN device_tracker dt ON
i.date <= dt.date AND
i.date + INTERVAL X SECOND >= dt.date
GROUP BY i.date
Device
isпервичный ключ и dt.date является индексом.
с 20000 строками в запросе device_tracker AND с интервалом 30-35 занимает около 4-5 секунд.Это нормально?Могу ли я сделать что-нибудь, чтобы улучшить скорость?
Это объяснение:
id select_type table type possible_keys key key_len ref rows Extra
-------------------------------------------------------------------------------------------------------------------
1 SIMPLE i index NULL PRIMARY 8 NULL 29 Using index; Using temporary; Using filesort
1 SIMPLE dt ALL date NULL NULL NULL 21594
EDIT : Last_time не существует, вместо этого я использую дату.