4 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊
count(1)--等於count(*)
數(shù)據(jù)庫引擎會(huì)把count(1)改為count(*)
主要是個(gè)人習(xí)慣
補(bǔ)充一下查看方法:
以下方式查看,樓上的不要誤導(dǎo).
SET SHOWPLAN_TEXT on ;
go
select count(1) from 表名
go
SET SHOWPLAN_TEXT off ;

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果你的數(shù)據(jù)表沒有主鍵,那么count(1)比count(*)快
如果有主鍵的話,那主鍵(聯(lián)合主鍵)作為count的條件也比count(*)要快
如果你的表只有一個(gè)字段的話那count(*)就是最快的啦
count(*) count(1) 兩者比較。主要還是要count(1)所相對(duì)應(yīng)的數(shù)據(jù)字段。
如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。
因?yàn)閏ount(*),自動(dòng)會(huì)優(yōu)化指定到那一個(gè)字段。所以沒必要去count(?),用count(*),sql會(huì)幫你完成優(yōu)化的.
它們的執(zhí)行結(jié)果是一樣的

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
*指的是所有的記錄
1指的是標(biāo)記為1的記錄
count(*)表示統(tǒng)計(jì)表中所有的記錄,不考慮任何條件
count(值)表示統(tǒng)計(jì)“值”的記錄,限制條件為“值”

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
count是統(tǒng)計(jì)的函數(shù) count是統(tǒng)計(jì)表中所有字段滿足where里條件的行數(shù),
這里的count (1)=count(*)應(yīng)該是統(tǒng)計(jì)這個(gè)表中滿足where里條件的行數(shù) 并把值賦給@tempID
- 4 回答
- 0 關(guān)注
- 1414 瀏覽
添加回答
舉報(bào)