谈一下函数DATE_FORMAT的性能问题

最近在做一个功能,里面sql中用到了DATE_FORMAT的这个转换时间的函数,刚开始用觉得挺好,数据量少也ok,当数据量不断增长到一定程度发现了问题以下是sql运行结果谈一下函数DATE_FORMAT的性能问题_第1张图片在一个两全万条的数据库中查询(数据库做了分区) 发现时间长达103秒多.
在看一下不用这个函数的情况
谈一下函数DATE_FORMAT的性能问题_第2张图片不到1秒,基本秒出,差距之大…

结论:
我们在log_time上创建索引,而DATE_FORMAT(log_time,’%Y-%m-%d’) 会使得索引字段变为DATE_FORMAT(log_time,’%Y-%m-%d’)这个字段,而我们数据库的表中没有这个字段,从而导致索引失效,进行全盘扫描查询.(sql数据库用是5.6)

你可能感兴趣的:(谈一下函数DATE_FORMAT的性能问题)