關于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
-----------------------------------------------------------
佛对我说:你心里有尘。我用力的拭擦。