2012-06-04 52 views
-1

可能重複:
Count(*) vs Count(1)SQL計數性能

如果我有一個表, '身份證' 的主鍵,然後這兩個命令有不同的表現?

select count(*) from t; 
select count(id) from t; 

感謝

+0

查詢優化器告訴你什麼? – 2012-06-04 17:49:13

回答

0

這些情況下,將具有相同的性能。在大多數數據庫中,count()會導致對錶或可用索引的掃描。它是否使用索引而不是表僅取決於查詢優化器。如果優化器足夠聰明以使用索引,則在兩種情況下都應該足夠聰明。

使用可用的元數據表,通常可以比使用count()查詢更有效地獲得表中的行數。

0

不,甲骨文接管並採取最快的方式在count(*)

0

我認爲如果id是主鍵Key(*)和count(id)在語義上是等價的。

但對於閱讀器count(id)意味着計數所有行的id不爲空的意圖。爲了避免混淆,我寧願使用count(*)。