用于日期范围查询的Clustered vs NonClustered Index

时间:2018-05-17 17:52:02

标签: mysql sql

我在mySql中有这个查询:

SELECT field1
FROM table1
WHERE tdate > '2018-6-01' OR (tdate BETWEEN '2015-4-07' AND 2016-6-07);

什么会提高查询效果,tdate上的索引或(tdate, field1)上的覆盖索引?

1 个答案:

答案 0 :(得分:1)

您可以使用included columns创建索引:

  

使用较大的索引键大小重新设计非聚簇索引,以便只有用于搜索和查找的列才是关键列。将覆盖查询的所有其他列转换为非键列。 通过这种方式,您将拥有覆盖查询所需的所有列,但索引键本身很小且效率很高。

CREATE INDEX my_idx_name ON tab_name(tdate) INCLUDE (field1)