我有一个包含三列的表格:
id | start_date | end_date
我有一个显示id
和DATEDIFF(hour, start_date, end_date)
的视图:
id | timespan
将日期列上的索引加快查询速度吗?这只适用于DATEADD
吗?如果是这样,为什么?我的理解是,对于像这样的算术查询,需要TABLE SCAN
。
答案 0 :(得分:4)
没有。它没有。
您可以创建计算列并在其上创建索引:
alter table <table> add duration as datediff(hour, start_date, end_date);
create index on <table>(duration);
当然,如果在duration
子句,where
子句或on
中使用order by
,则索引最有用。