我有一個表叫hitlist
,其中有3列:組索引Informix中
int id
long hitlisted_date
long deleted_date
我會根據這些列來查詢該表:
histlisted_date (frequent)
hitlisted_date && deleted_date (frequent)
deleted_date (not frequent)
在這種情況下,什麼樣的我應該使用索引嗎?在hitlisted_date
& deleted_date
hitlisted_date
& deleted_date
UPDATE
- 單列索引表將只有1000 - 5000行。
這些是將要使用的查詢模式。1)hitlisted_date BETWEEN
2)hitlisted_date <
3)deleted_date = -1和hitlisted_date < =
4)deleted_date> 0對於上述圖案,這些索引就足夠了?
- CREATE INDEX i1_hitlist ON hitlist(hitlisted_date);
- CREATE INDEX i2_hitlist ON hitlist(deleted_date,hitlisted_date);
請注意DATE(-1)是1899-12-30。如果一切都足夠近以至於它不會干涉,那麼你很好,但是不久前有人比一般流通中的人老。 –
日期列是'長'數據類型(紀元時間) – cppcoder
因此它們不是DATE類型。它們是INTEGER列。 Informix中的DATE類型具有特定的含義。 (並且1969-12-31 23:59:59比1899-12-30更近,即使如此也可能不是問題,但要小心) –