《MySQL中 count(1) 比 count(*)效率更優?》要點:
本文介紹了MySQL中 count(1) 比 count(*)效率更優?,希望對您有用。如果有疑問,可以聯系我們。
科多大數據為大家簡單的介紹mysql中count(1)與count(*) 性能比擬.
通常年夜家走入一個誤區是,count(*) 為全表掃描,所以認為count(*) 的效率是最低的.而實際上,如何寫count 并沒有什么太年夜的區別.
sql調優,主要是考慮低落:consistent gets和physical reads的數量.
count(1)與count(*)比擬:
假如你的數據表沒有主鍵,那么count(1)比count(*)快
如果有主鍵的話,那主鍵(結合主鍵)作為count的條件也比count(*)要快
如果你的表只有一個字段的話那count(*)便是最快的啦
count(*) count(1) 兩者比擬.主要還是要count(1)所相對應的數據字段.
如果count(1)是聚索引,id,那肯定是count(1)快.然則差的很小的.
因為count(*),自動會優化指定到那一個字段.所以沒需要去count(?),用count(*),sql會幫你完成優化的
count詳解:
count(*)將返回表格中所有存在的行的總數包含值為null的行,然而count(列名)將返回表格中除去null以外的所有行的總數(有默認值的列也會被計入).
distinct 列名,得到的結果將是撤除值為null和重復數據后的結果
總結三條履歷
1.任何環境下SELECT COUNT(*) FROM tablename是最優選擇;
2.盡量削減SELECT COUNT(*) FROM tablename WHERE COL = 'value’ 這種查詢;
3.杜絕SELECT COUNT(COL) FROM tablename的呈現.
@來自科多年夜數據,轉載注明出處
現在還不清楚本身是否適合學習大數據的小伙伴們可以點擊以下鏈接或者掃描二維碼測試一下哦~
http://www.101test.com/cand/index必修paperId=21VNJU
維易PHP培訓學院每天發布《MySQL中 count(1) 比 count(*)效率更優?》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/7831.html