mysql中count(*),count(字段),count(1)的区别
生活随笔
收集整理的這篇文章主要介紹了
mysql中count(*),count(字段),count(1)的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
count(主鍵id)
InnoDB 會遍歷全表,取每行的主鍵 id,返回給 server 層,server 層拿到數據后,進行判斷累加。count(1)
InnoDB 仍遍歷全表,但是不取值,server 層對返回的每一行數據新增一個 1,然后進行判斷累加;因此,count(1)要更快些,因為無需取值。從引擎返回 id 會涉及到解析數據行,以及拷貝字段值的操作。
count(字段):
count(*)
并不會把全部字段取出來,而是專門做了優化,不取值。count(*)肯定不是 NULL,按行累加。
結論:按照效率排序的話,count(字段)<count(主鍵
id)<count(1)≈count(),所以我建議你,盡量使用count()。
引用:https://www.jianshu.com/p/e1229342a5e2
總結
以上是生活随笔為你收集整理的mysql中count(*),count(字段),count(1)的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载保存】Java+Selenium使
- 下一篇: @EnableTransactionMa