У меня есть большая таблица (> 50 м строк), в которой есть некоторые данные с идентификатором и отметкой времени:
id, timestamp, data1, ..., dataN
... с индексом из нескольких столбцов на (id, timestamp)
.
Мне нужно запросить таблицу, чтобы выбрать все строки с определенным идентификатором, где отметка времени находится между двумя датами, которые я сейчас использую:
SELECT * FROM mytable WHERE id = x AND timestamp BETWEEN y AND z
В настоящее время это занимает более 2 минут на высокопроизводительном компьютере (2 x 3 ГГц двухъядерные Xeons с HT, 16 ГБ ОЗУ, 2 x 1 ТБ дисков в RAID 0), и я бы очень хотел ускорить его.
Я нашел этот совет , который рекомендует использовать пространственный индекс, но пример, который он дает, относится к IP-адресам. Тем не менее, увеличение скорости (с 436 до 3 с) впечатляет.
Как я могу использовать это с метками времени?