日期:2014-05-19  浏览次数:49442 次

请教count(0)和count(*)哪个效率高?
数据库使用的是SQL 2005,数据库表中有40多万条数据,第一项是GUID,字段有10几个,用count(0)和count(*)哪个效率会高一点呀?如果有1000万条记录呢?
谢谢!


------解决方案--------------------
count(0)和count(*)不一样,前者会忽略null
------解决方案--------------------
楼上的说的有道理
顶下
------解决方案--------------------
一般都用COUNT(1),感觉count(1)比count(*)会快些,楼主可以试一下。
------解决方案--------------------
(1)count(0)和count(*)不一样,前者会忽略null
(2)一般都用COUNT(1),感觉count(1)比count(*)会快些,楼主可以试一下。

------解决方案--------------------
赠点分
------解决方案--------------------
探讨
数据库使用的是SQL 2005,数据库表中有40多万条数据,第一项是GUID,字段有10几个,用count(0)和count(*)哪个效率会高一点呀?如果有1000万条记录呢?
谢谢!


------解决方案--------------------
探讨
count(0)和count(*)不一样,前者会忽略null

------解决方案--------------------
count(*)忽略空值 这个是重点。。
用法都不一样
如果楼主count的值没有空 应该是差不多的
------解决方案--------------------
sql2005对count(*)做了一些优化,效率和count(0)应该差别不大。
------解决方案--------------------
count(*)会利用索引。
select rowcnt from sysindexes where ... 最快。
------解决方案--------------------
学习
------解决方案--------------------
探讨
数据库使用的是SQL 2005,数据库表中有40多万条数据,第一项是GUID,字段有10几个,用count(0)和count(*)哪个效率会高一点呀?如果有1000万条记录呢?
谢谢!


------解决方案--------------------
那用count(1)吧
------解决方案--------------------
探讨
引用:
数据库使用的是SQL 2005,数据库表中有40多万条数据,第一项是GUID,字段有10几个,用count(0)和count(*)哪个效率会高一点呀?如果有1000万条记录呢?
谢谢!



count(0)=count(1)=count(*)

count(指定的有效值)--執行計劃都會轉為count(*)
除非指定的是列名,會判斷是否有null,null不計算記錄

------解决方案--------------------
效率基本没差异。
------解决方案--------------------
习惯count(1),呵呵
------解决方案--------------------
探讨
count(0)和count(*)不一样,前者会忽略null

------解决方案--------------------
探讨
引用:
引用:
数据库使用的是SQL 2005,数据库表中有40多万条数据,第一项是GUID,字段有10几个,用count(0)和count(*)哪个效率会高一点呀?如果有1000万条记录呢?
谢谢!


count(0)=count(1)=count(*)

count(指定的有效值)--執行計劃都會轉為count(*)
除非指定的是列名,會判斷是否有null,null不計算記錄

如果你说的是真的,那么用count(*)是比count(1)快了



------解决方案--------------------
对2005来说,一样
------解决方案--------------------
习惯COUNT(1)呵呵!!!效率自己试试看!!
------解决方案--------------------
roy_88和Haiwer回复正确。
------解决方案--------------------
效率差不多的。