如果我在日期字段上添加索引,主要用于查询类似内容的东西,那么我会得到任何真正的好处吗?
dateField < 'var'
和
'var' BETWEEN dateField1 AND dateField2
这些搜索很频繁,但我从未对它们进行直接的 "=" 比较。
如果我在日期字段上添加索引,主要用于查询类似内容的东西,那么我会得到任何真正的好处吗?
dateField < 'var'
'var' BETWEEN dateField1 AND dateField2
这些搜索很频繁,但我从未对它们进行直接的 "=" 比较。
当然可以。范围搜索和等值搜索一样,都会受益于索引。
引用自MySQL 参考手册 :: MySQL 如何使用索引:
B-Tree 索引特点
在使用 =、>、>=、<、<=或 BETWEEN 运算符的表达式中,B-Tree 索引可用于列比较。如果 LIKE 的参数是不以通配符字符开头的常量字符串,则也可以使用该索引进行 LIKE 比较。
在某些情况下,优化器可能会决定不使用索引,如果范围太大,全表扫描可能更快。使用EXPLAIN
来查看查询将使用哪些(如果有)索引。