作者:情感顾问世界 | 来源:互联网 | 2023-05-26 17:12
在项目应用中,开发经常需要同时取某个表的最大最小月份,碰到表数据量特别大时,运行的速度会很慢,这就要考虑优化了~
下面拿一张2900万+数据量的表演示:
一般写法,用时2.88s

优化后写法,用时0.167s

根据以上结果可以看出执行时间相差将近20倍,当然前提是统计字段上建有索引或者字段是分区字段,这个就不一一演示了,有兴趣的自己尝试一下~~~
原理也很简单,假设字段上有索引,那么min()/max()会直接从索引信息中取数。但是第一种写法,从索引一端开始查找:

而第二种写法会直接找到索引两端:

执行速度自然就快了!!!
-----------------------完---------------------------------