關于count(*), count(1) 和 count(主鍵)

3個都可以用來查詢表內record的數量,至于用哪個則要看自己數據庫設計的結構了.

1) 假如表沒有主鍵(Primary key), 那么count(1)比count(*)快;

2) 如果有主鍵的話,那主鍵作為count的條件比其他兩個快;

3) 如果你的表只有一個字段的話那count(*)就是最快的啦

 

來個例子吧,在一個lvnet到數據庫里有個表network, 里面有10幾萬條record.

下面是分別用三個來查詢的時間差別:

 

Set timing on;

select count(*) from network;

COUNT(*)              
----------------------
144402                

 16ms elapsed

 

Set timing on;

select count(1) from network;  ( 1對應的位置不是primary key)

COUNT(1)              
----------------------
144402                

15ms elapsed

 

Set timing on;

select count(1) from network;

COUNT(LSID)           
----------------------
144402                

0ms elapsed


 


 

posted on 2008-09-19 15:59  炜升  阅读(399)  评论(1编辑  收藏  举报