sql优化之DATE_FORMAT()函数
今天在线生环境出现了一个问题,前端接口请求超时,我立马跑到正式环境中去运行了下请求超时的sql,吓一跳,足足运行了30多秒,这不行,得赶紧优化,可是左看有看上看下看,没毛病啊,于是,请教了我们组上的大神,他一眼就看出了问题所在,问题就出在DATE_FORMAT()这个函数,为此,我要记录一番,希望大家少踩坑。如果在数据量少的情况小,运用DATE_FORMAT()性能是不会有影响,但是数据量一旦大
·
今天在线生环境出现了一个问题,前端接口请求超时,我立马跑到正式环境中去运行了下请求超时的sql,吓一跳,足足运行了30多秒,这不行,得赶紧优化,可是左看有看上看下看,没毛病啊,于是,请教了我们组上的大神,他一眼就看出了问题所在,问题就出在DATE_FORMAT()这个函数,为此,我要记录一番,希望大家少踩坑。
如果在数据量少的情况小,运用DATE_FORMAT()性能是不会有影响,但是数据量一旦大 了之后,就会慢慢的出现性能问题了,这也是当时测试环境没有查出来,正式环境出现这个问题。
为了演示效果:我往表里插了几千万条数据,
数据结构是这样的,我要查出regist_date是2018年的数据
我来执行修这个sql:
用时:
优化之后的执行下:
性能简直飞起:
为啥了,因为DATE_FORMAT函数会导致索引失效,所以大数据量不建议用这个函数。
更多推荐
所有评论(0)