【发布时间】:2016-05-24 09:36:08
【问题描述】:
在我的数据库中,有一个名为Profile 的表,其中有一个名为DATETIME 的字段birthday。
我想查询生日在 05-24 和 06-07 (mm-dd) 之间的所有记录,无论是哪一年,我使用以下查询:
DATE_FORMAT(`Profile`.`birthday`, "%m-%d") >= '05-24'
AND DATE_FORMAT(`Profile`.`birthday`, "%m-%d") < '06-07'
问题是这样做,birthday列的index有没有用,查询太慢,我想提高我的速度查询
请告诉我是否有任何解决方法仍然可以完成这项工作并同时提高查询性能
【问题讨论】:
-
您使用的是什么版本的 MySQL? 5.7 允许索引“虚拟列”
-
我用的是 mysql 5.6,你可以给我看看另一个解决方案
-
使用虚拟列是个好主意。使用虚拟持久性列,因此您也可以在其上使用索引
标签: php mysql datetime indexing