mysql查询语句中使用DATE_FORMAT函数对索引的影响? ? ?

1.出现的问题如下:

表数据量很大, 百/千万级别的数据, 进行表查询发现很慢很慢…( 10s ~ 20s ), 于是进行优化.

2.explain查看是否使用索引?

原SQL语句: ( 只贴出部分语句 )

explain select id from user where DATE_FORMAT(createDate,'%Y-%m-%d') >= '2020-01-12'

执行分析如下: ( crateDate这个时间字段, 并没有使用索引, 况且进行了全表扫描( 百万条数据 ) , 当然会很慢了. )
mysql查询语句中使用DATE_FORMAT函数对索引的影响? ? ?


优化SQL语句:

explain select id from user where createDate >= '2020-01-12'

执行分析如下: ( 使用了索引, 查询条数减少 )
mysql查询语句中使用DATE_FORMAT函数对索引的影响? ? ?

3.结论:

应尽量避免使用该函数DATE_FORMAT, 索引会失效, 导致全表扫描.

mysql查询语句中使用DATE_FORMAT函数对索引的影响? ? ?mysql查询语句中使用DATE_FORMAT函数对索引的影响? ? ? Xiao·Jian 发布了104 篇原创文章 · 获赞 169 · 访问量 12万+ 私信 关注
上一篇:如何调用SQL


下一篇:MySql下的Explain 中的TYPE, Extra