热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

在项目应用中,开发经常需要同时取某个表的最大最小月份,碰到表数据量特别大时,运行的速度会

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

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



  • 一般写法,用时2.88s

    image.png



  • 优化后写法,用时0.167s

    image.png



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

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

image.png

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

image.png

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

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



推荐阅读
author-avatar
情感顾问世界
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有