Oracle 中count(1) 和count(*) 的区别

转载 2015年07月09日 10:57:27

<span style="font-size:18px;">count(1)与count(*)比较: 

如果你的数据表没有主键,那么count(1)比count(*)快 
如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快 
如果你的表只有一个字段的话那count(*)就是最快的啦 
count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。 
如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。 
因为count(*),自动会优化指定到那一个字段。所以没必要去count(?),用count(*),sql会帮你完成优化的

count详解:

count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入).
distinct 列名,得到的结果将是除去值为null和重复数据后的结果

----------------------------------------------------------------------------------------------------------------
举例演示如下:


SQL> create table test
2 (
3 ename varchar2(10),
4 sal number(4)
5 );

表已创建。

SQL> insert into test values('fxe1',90);

已创建 1 行。

SQL> insert into test(ename) values('fxe2');

已创建 1 行。

SQL> insert into test(ename) values('fxe3');

已创建 1 行。

SQL> insert into test(ename) values('fxe4');

已创建 1 行。

SQL> insert into test values('fxe5',80);

已创建 1 行。

SQL> insert into test values('fxe6',80);

已创建 1 行。

SQL> select * from test;

ENAME SAL
---------- ----------
fxe1 90
fxe2
fxe3
fxe4
fxe5 80

fxe6 80

SQL> select count(*) from test;

COUNT(*)
----------
6

SQL> select count(sal) from test;

COUNT(SAL)
----------
3


SQL> select count(distinct sal) from test;

COUNT(DISTINCTSAL)
------------------
2

SQL> select distinct sal from test;

SAL
----------
80
90

 
</span>


相关文章推荐

oracle 中sum和count的区别

例1:查询出现过2次的name。   往往初学者会错误地认为在where 语句里直接使用count()算法,很显然这个想法是错误的,count()方法并不能被用在where子句中,为了解决问题,我们可...

Why Change the Oracle DB_FILE_MULTIBLOCK_READ_COUNT?

A higher DB_FILE_MULTIBLOCK_READ_COUNT (MBRC) number can influence the Oracle optimizer to lean towa...

Oracle 11g通过提高IO吞吐量(修改_db_file_optimizer_read_count)来优化全表扫描

--Oracle 11g通过提高IO吞吐量(修改_db_file_optimizer_read_count)来优化全表扫描 SYS@PROD1> select ksppinm, indx from ...

oracle优化之count的优化-避免全表扫描

select count(*) from t1; 这句话比较简单,但很有玄机!对这句话运行的理解,反映了你对数据库的理解深度! 建立实验的大表他t1 SQL> conn scott/tiger ...

Oracle11g count使用函数时在性能与返回结果的差别

实验对象: count(0) count(*) count(字段名) 实验结果: 1、无主键的情况下,实验结果:三种count消耗的性能相同: 2、有主键的情况下,实验结果:三种count消耗的...

Oracle数据库下不可Count的字段类型

雪影工作室版权所有,转载请注明【http://blog.csdn.net/lina791211】 一、问题产生         在做项目开发的过程中,需要抽取指定数据库的所有表的基本信息(字段个...

STL algorithm之count、find、binary_search、lower_bound、upper_bound和equal_range的区别

出处:http://www.cnblogs.com/qlee/archive/2011/04/08/2009667.html 你要寻找什么,而且你有一个容器或者你有一个由迭代器划分出来的...

stl algorithm : count、find、lower_bound、upper_bound和equal_range的区别

注意count、find、lower_bound、upper_bound和equal_range的区别(Effective STL) 2009-07-01 11:08 要选择搜...

iOS 开发中弄不清楚的小细节之数组 ——array == nil 和 [array count] == 0区别

很多时候我们开发者往往对一些比较难的技术点相对要熟悉一些,而对一些细节或者说感觉比较简单的问题总是弄不清楚,而数组的判断首当其冲。 我们在做开发的时候,需要数据,可是很多时候从服务器下发的数据都是J...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)