5

将索引放在日期字段上是否会有任何真正的好处,这些日期字段将主要用于使用类似的东西进行查询。

dateField < 'var'

'var' BETWEEN dateField1 AND dateField2

搜索完成了很多,但我从来没有对它们进行直接比较“=”。

4

1 回答 1

16

是的当然。范围搜索将受益于索引,就像相等搜索一样。

引用MySQL 参考手册 :: MySQL 如何使用索引

B-Tree 索引特征

B 树索引可用于使用 =、>、>=、<、<= 或 BETWEEN 运算符的表达式中的列比较。如果 LIKE 的参数是不以通配符开头的常量字符串,则索引也可用于 LIKE 比较。

在某些情况下,如果范围最终太大,优化器可能会决定不使用索引,因为表扫描实际上可能更快。用于EXPLAIN查看将在您的查询中使用哪些(如果有)索引。

于 2010-10-01T14:59:21.820 回答