繁体   English   中英

当查询条件是 mysql 中的 now() 函数时,不能使用索引 varchar 列

[英]indexed varchar column can not be used when query condition is now() function in mysql

背景:

就我而言,mysql 是 5.7。

有一个名为A的表和一个名为date_str的索引列。 date_str数据看起来像2017-01-16 00:00:00

问题:

我发现索引不能用于范围查询,例如select * from A where date_str > now() 在此处输入图片说明

但是当查询条件是另一个函数right()时使用索引。

在此处输入图片说明

有谁知道这是为什么? 谢谢。

根据您的查询计划,如果需要,将使用您的索引。

在应用任何索引之前,数据库查询分析器会分析查询并估计不同操作的成本。

如果查询分析器发现应用索引会提高查询性能,那么只有它会使用索引。

这些统计数据随着表中数据的增加/减少/更新而变化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM