博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
count(*),count(1)和count(主键) 区别
阅读量:4551 次
发布时间:2019-06-08

本文共 1416 字,大约阅读时间需要 4 分钟。

看如下数据:

1 SQL> select count(*) from ysgl_compile_reqsub; 2  3   COUNT(*) 4 ---------- 5    5288265 6  7 已用时间:  00: 00: 07.51 8 SQL> select count(1) from ysgl_compile_reqsub; 9 10   COUNT(1)11 ----------12    528826513 14 已用时间:  00: 00: 00.6815 SQL> select count(id) from ysgl_compile_reqsub;16 17  COUNT(ID)18 ----------19    528826520 21 已用时间:  00: 00: 00.6822 SQL> select count(rowid) from ysgl_compile_reqsub;23 24 COUNT(ROWID)25 ------------26      528826527 28 已用时间:  00: 00: 01.0129 SQL> select count(rowid) from ysgl_vdata_his;30 31 COUNT(ROWID)32 ------------33      529945834 35 已用时间:  00: 00: 09.9836 SQL> select count(*) from ysgl_vdata_his;37 38   COUNT(*)39 ----------40    529945841 42 已用时间:  00: 00: 00.9343 SQL> select count(1) from ysgl_vdata_his;44 45   COUNT(1)46 ----------47    529945848 49 已用时间:  00: 00: 00.7150 SQL> select count(1) from ysgl_excelbasic;51 52   COUNT(1)53 ----------54    375505255 56 已用时间:  00: 00: 04.6057 SQL> select count(*) from ysgl_excelbasic;58 59   COUNT(*)60 ----------61    375505262 63 已用时间:  00: 00: 00.5064 SQL>

不考虑Null的情况:

count(1)和count(主键) 这两个只扫描主键Index就可以得到数据,
count(*)是扫描表的。
所以count(1)和count(主键)这两个效率高。
还有一种写法是count(ROWID)这也是只扫描Index的,效率高。

这个问题就是问你什么时候Oracle容易走表查询,什么时候Oracle容易走INDEX查询。

实际应用中,你得看实际情况,没准这个表没有唯一键索引呢?在CBO(ORACLE提供的一种SQL优化器)的情况下,统计情报不准确呢?
这种问题会出现好多版本的回答。测试环境不同结果也不一样,你随便键个表,看看它们的执行计划,就能看出他们的区别了。

转载于:https://www.cnblogs.com/byvar/p/3794765.html

你可能感兴趣的文章
HDU - 3416-Marriage Match IV (最大流 + 最短路)
查看>>
19 年书单
查看>>
力扣——各位相加
查看>>
规范 : Sql statusEnum
查看>>
jQuery的.live()和.die() 使用介绍
查看>>
mybatis
查看>>
我该怎么安排下属的工作-项目经理如何分配任务
查看>>
Chord算法(原理)
查看>>
cocos2d-html5
查看>>
Ubuntu 14.04 Android 使用Maven二 创建自己的Mavenproject
查看>>
SSI框架中配置log4j
查看>>
向ASP.NET MVC控制器传递JSON对象的方法
查看>>
不变模式
查看>>
RabbitMQ安装与搭建
查看>>
【转】UITextView检查已输入字符字数
查看>>
延迟初始化
查看>>
字符串格式化和format
查看>>
页面内容添加新的显示或者显示隐藏的内容,滚动条滚动到最低端,显示出新内容...
查看>>
【poj1182】 食物链
查看>>
Oracle学习之start with...connect by子句的用法
查看>>