暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle中快速取表字段最大最小值(min/max)

原创 letitia1208 2022-02-24
3299

在项目应用中,开发经常需要同时取某个表的最大最小月份,碰到表数据量特别大时,运行的速度会很慢,这就要考虑优化了~

下面拿一张2900万+数据量的表演示:

  • 一般写法,用时2.88s
    image.png

  • 优化后写法,用时0.167s
    image.png

根据以上结果可以看出执行时间相差将近20倍,当然前提是统计字段上建有索引或者字段是分区字段,这个就不一一演示了,有兴趣的自己尝试一下~~~

原理也很简单,假设字段上有索引,那么min()/max()会直接从索引信息中取数。但是第一种写法,从索引一端开始查找:
image.png

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

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

-----------------------完---------------------------------

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论