mysql - 将索引放在 MySQL 中的日期字段上

标签 mysql indexing database-indexes

将索引放在主要用于查询的日期字段上对我有什么真正的好处吗?

dateField < 'var'

'var' BETWEEN dateField1 AND dateField2

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

最佳答案

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

引自MySQL Reference Manual :: How MySQL Uses Indexes :

B-Tree Index Characteristics

A B-tree index can be used for column comparisons in expressions that use the =, >, >=, <, <=, or BETWEEN operators. The index also can be used for LIKE comparisons if the argument to LIKE is a constant string that does not start with a wildcard character.

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

关于mysql - 将索引放在 MySQL 中的日期字段上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3840348/

相关文章:

sql-server - SQL Server 更新查询不使用索引

sql - 是否需要为包含数字的数据库列编制索引?

ruby-on-rails - 我应该在 Ruby on Rails 3.0 中的计数器缓存列上添加索引吗

mysql - 不使用 MySQL Workbench 创建新数据库

由列表索引的python数据框

php - 我使用循环填充 <select> 选项,如何使选择框显示当前选项而不是最高值?

c# - 如何通过单击按钮向上或向下移动 ListView 项目

mysql - 如何通过 LIKE 和部分匹配在 MySQL 中为 VARCHAR 字段使用索引?

mysql - 无法在 MySQL 中保存大图像

mysql - where 子句中的 SQL 别名