[SQL]count(*) 與 count(1) 比較
2 min readOct 6, 2020
count( )計算資料有幾筆(幾列) 回傳比數
count(*) 回傳所有列數(包含欄位內有null)
count(1) 回傳所有列數(包含欄位內有null) 再有主鍵的情況下快
count(欄位別) 回傳列數(不包含NULL)
select count(1)from talbe;
count(1) 是絕對快,它只統計記錄條數,對條件下的表掃描一遍而已
count(*) 是可能快,有主鍵的時候只掃主鍵,主鍵數等於記錄數
count(主鍵)=count(1)
計算SUM 時 使用 count(欄位) 避免蘭為NULL