我有一个表叫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更近,即使如此也可能不是问题,但要小心) –