【问题详细描述】
如下存在2个问题
问题1:
MySQL使用DATE_FORMAT函数查询索引字段走表扫描,查询语句如下:
SELECT * FROM ab14nbmx where DATE_FORMAT(b14rq, '%Y-%m-%d')='2017-07-01'
见附件“2-explain访问计划.jpg” type为ALL,说明走表扫描,为什么?
问题2:
使用标准语句查询存在的记录,为什么查询匹配不到记录?
【解决办法】
问题1解决办法:
SequoiaDB 暂不支持 DATE_FORMAT 函数形式的查询条件下压,不支持函数查询走索引。
问题2解决办法:
用户将数据导入到 SequoiaDB 时原数据 json 文件时间类型记录为 {b14rq:'2017-07-01'},是 string 类型,并非 date 类型数据,而 MySQL 表结构定义的 br14rq 为 DATE 类型,所以在 MySQL 端查询该字段时匹配不到时间类型的记录。
用户修改 json 文件记录为 {b14rq:{$date:'2017-07-01'}} 后重新导入数据,再次查询,能查询到记录,问题解决。