MySQL查询count(*)、count(1)、count(field)的区别收集
count(*)對(duì)行的數(shù)目進(jìn)行計(jì)算,包含NULL
count(column)對(duì)特定的列的值具有的行數(shù)進(jìn)行計(jì)算,不包含NULL值。
count()還有一種使用方式,count(1)這個(gè)用法和count(*)的結(jié)果是一樣的。
任何情況下select count(*) from tablename是最優(yōu)選擇;
盡量減少select count(*) from tablename where COL = ‘value’這種查詢;
杜絕select count(COL) from tablename where COL2 = ‘value’的出現(xiàn)。
如果表沒有主鍵,那么count(1)比count(*)快。
如果有主鍵,那么count(主鍵,聯(lián)合主鍵)比count(*)快。
如果表只有一個(gè)字段,count(*)最快。
count(1)跟count(主鍵)一樣,只掃描主鍵。count(*)跟count(非主鍵)一樣,掃描整個(gè)表。明顯前者更快一些。
若含有where語句,則會(huì)優(yōu)先where中條件索引。
轉(zhuǎn)載于:https://www.cnblogs.com/liuchunxiao83/p/11326348.html
總結(jié)
以上是生活随笔為你收集整理的MySQL查询count(*)、count(1)、count(field)的区别收集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MAC下查看环境变量的值的方法
- 下一篇: 最好用的koa2+mysql的RESTf