Mysql 日期范围查询的聚集索引与非聚集索引

Mysql 日期范围查询的聚集索引与非聚集索引,mysql,sql,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)上的覆盖索引?您可以使用以下内容创建索引: 重新设计具有较大索引键大小的非聚集索引,以便只有用于搜索和查找的列才是键列。将包含查询的所有其他列设置为非键列通过这种方式,您将拥有覆盖查询所

我在mySql中有一个查询:

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

什么能更有效地提高查询性能,在
tdate
上的索引或在
(tdate,field1)
上的覆盖索引?

您可以使用以下内容创建索引:

重新设计具有较大索引键大小的非聚集索引,以便只有用于搜索和查找的列才是键列。将包含查询的所有其他列设置为非键列通过这种方式,您将拥有覆盖查询所需的所有列,但索引键本身又小又高效。


有没有办法在mysql中包含一个列?@YeltForman我认为mysql是不可能的。您可以创建普通的复合索引(tdata,field1)
CREATE INDEX my_idx_name ON tab_name(tdate) INCLUDE (field1)