count(column) 和 count(*)和count(1)

實際上,count(column) 和 count(*) 是一個完全不一樣的操作,所代表的意義也完全不一樣。

  count(column) 是表示結果集中有多少個column字段不爲空的記錄

  count(*) 是表示整個結果集有多少條記錄


  1. count(1)與count(*)比較:   
  2.   
  3. 如果你的數據表沒有主鍵,那麼count(1)比count(*)快   
  4. 如果有主鍵的話,那主鍵(聯合主鍵)作爲count的條件也比count(*)要快   
  5. 如果你的表只有一個字段的話那count(*)就是最快的啦   
  6. count(*) count(1) 兩者比較。主要還是要count(1)所相對應的數據字段。   
  7. 如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。   
  8. 因爲count(*),自動會優化指定到那一個字段。所以沒必要去count(?),用count(*),sql會幫你完成優化的  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章