select count (*)、count(1)、count(column)的区别

select count (*)、count(1)、count(column)的区别如下:

  • count(1) 中的 1 并不是表示为第一个 column
  • count(*) 跟 count(1) 的结果一样,包括对NULL的统计
  • count(column) 是不包括对NULL的统计
  • 如果表沒有主键(Primary key), 那么count(1)比count(*)快
  • 如果表没有主键,只建了索引,那么count(*),count(1)是一样的,都是TABLE ACCESS FULL ,而count(索引)则是INDEX FULL SCAN
  • 如果有主键的話,那count(主键)最快,那么count(*),count(1),以及count(主键)是一样的,都是INDEX FULL SCAN
  • 如果你的表只有一个字段的话那count(*)就是最快的
亦可参考下官网上的有关问答:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1156159920245

原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]

本文链接地址: http://www.micmiu.com/db/oracle-db/select-count/

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">