1.出现的问题如下:
表数据量很大, 百/千万级别的数据, 进行表查询发现很慢很慢…( 10s ~ 20s ), 于是进行优化.
2.explain查看是否使用索引?
原SQL语句: ( 只贴出部分语句 )
explain select id from user where DATE_FORMAT(createDate,'%Y-%m-%d') >= '2020-01-12'
执行分析如下: ( crateDate这个时间字段, 并没有使用索引, 况且进行了全表扫描( 百万条数据 ) , 当然会很慢了. )
优化SQL语句:
explain select id from user where createDate >= '2020-01-12'
执行分析如下: ( 使用了索引, 查询条数减少 )
3.结论:
应尽量避免使用该函数DATE_FORMAT, 索引会失效, 导致全表扫描.
Xiao·Jian 发布了104 篇原创文章 · 获赞 169 · 访问量 12万+ 私信 关注