A.Вы, вероятно, хотите индекс в поле отметки времени.
Однако это не обязательно конец истории;если ваши запросы сканируют диапазон по индексу метки времени, то его использование в качестве вторичного индекса не обязательно является хорошей идеей в InnoDB.
B.Сделать отметку времени первой части первичного ключа
Это нелогично, но поскольку кластеры InnoDB на первичном ключе, имея отметку времени первой части первичного ключа, превратят сканирование диапазона вторичного индекса в первичное.сканирование диапазона клавиш, что в целом лучше.Вторичное сканирование диапазона индекса должно извлекать каждую строку в диапазоне;Сканирование первичного ключа восстановило его уже .
C.Разделение по времени
Если ваши запросы медленные, поскольку таблица становится слишком большой для памяти (часто требуется чтение операций ввода-вывода), но вы всегда запрашиваете небольшой (ish) интервал времени, рассмотрите возможность создания ежедневных или часовых разделов.
Конечно, ежедневные разделы работают намного хуже, если ваши пользователи находятся в разных часовых поясах, поскольку их дни пересекаются с днями разделов.
Разделение требует, чтобы сценарии выполняли текущее обслуживаниетаблицы (создание новых разделов; удаление старых).Вы должны предоставить и протестировать эти сценарии, так что это явно накладные расходы для разработчика.Операции также должны отслеживать эти сценарии, поэтому у них тоже есть накладные расходы.