,我有以下形式的查詢:上時間戳創建索引優化查詢
SELECT * FROM MyTable WHERE Timestamp > [SomeTime] AND Timestamp < [SomeOtherTime]
我想優化這個查詢,我想這會讓時間戳的索引,但我不當然,如果這會有所幫助。理想情況下,我希望爲聚簇索引創建時間戳,但MySQL不支持除主鍵之外的聚簇索引。
MyTable
有4百萬行。Timestamp
實際上INT
類型是。- 一旦行被插入,它永遠不會改變。
- 與任何給定
Timestamp
行數平均爲約20,但也可以是高達200 - 新插入的行具有
Timestamp
比大多數現有的行較大,但也可以是小於某些更新的行。
會在Timestamp
索引幫我優化這個查詢?
即使在MSSQL中,如果您在非唯一列上創建羣集索引,它也會在封面下使其具有唯一性。當然,索引會幫助選擇,但會減慢插入速度,索引將佔用磁盤空間。但這聽起來像你願意承擔的交易。將索引放在表格上並進行測試。索引用於>和<。 – Paparazzi 2012-01-31 22:22:30
你在這張桌子上有聚集索引嗎? – 2012-01-31 22:24:54
@BalamBalam我實際上是爲上述類型的查詢設計數據庫,所以我無法測試性能。 – DanielGibbs 2012-01-31 22:29:08