[MySQL]sql語句count操作效率排序count(*) count(1) count(主鍵id) count(字段)


結論:
count(*)>count(1)>count(主鍵id)>count(字段)

原因:
count(*)單獨做過優化,只掃描普通索引樹,並且不會取值,按行累加
count(1)遍歷表放一個數字“1”進去,判斷是不可能為空的,按行累加
count(主鍵id)遍歷表,解析數據把id值取出來,按行累加
count(字段)遍歷表,解析數據,判斷是否為null,按行累加,如果不是索引的更慢

引擎差異:
innodb表引擎的都要遍歷表,因為存在事務下的mvcc機制的原因
myisam引擎的count(*)直接存儲了值,不需要遍歷直接取值所以最快


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM