关于count(1)和count(*)

关于count(1)和count(*)
先说说他们的作用:计算所查询的表或者视图中数据的总行数。
很多人都有这样的疑问,count(1)比count(*)更高效吗?
下面来做个简单的测试:
SQL>set timing on;
SQL> select count(1) from all_objects;
COUNT(1)
----------
38958
Executed in 1.485 seconds

SQL> select count(*) from all_objects;
COUNT(*)
----------
38958
Executed in 1.484 seconds

从上面的执行时间来看,这两个语句执行耗时差不多。那么他们真的就没有谁更高效点吗?
答案是他们两的效率都是一样的,下面这篇文章给出了具体的测试:
http://blog.itpub.net/post/330/1914

在tom的网站上你可以进一步对他们做透彻的了解:

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:1156159920245

http://asktom.oracle.com/pls/asktom/f?p=100:11:2061959459037986::::P11_QUESTION_ID:1156151916789

你可能感兴趣的:(count)