我有一个大表(> 50m 行),其中包含一些带有 ID 和时间戳的数据:
id, timestamp, data1, ..., dataN
...在 . 上有一个多列索引(id, timestamp)
。
我需要查询表以选择时间戳在两个日期之间的具有特定 ID 的所有行,我目前正在使用:
SELECT * FROM mytable WHERE id = x AND timestamp BETWEEN y AND z
目前,这在高端机器上需要 2 多分钟(2x 3Ghz 双核 Xeons w/HT,16GB RAM,RAID 0 中的 2x 1TB 驱动器),我真的很想加快速度。
我发现了这个建议使用空间索引的技巧,但它给出的示例是针对 IP 地址的。然而,速度提升(436s 到 3s)令人印象深刻。
如何将它与时间戳一起使用?