count() * ,1,字段 三兄弟
/COUNT:非空的/
SELECT COUNT(studentname) FROM student;
SELECT COUNT(*) FROM student;
SELECT COUNT(1) FROM student; /推薦/
– 從含義上講,count(1) 與 count() 都表示對(duì)全部數(shù)據(jù)行的查詢(xún)。
– count(字段) 會(huì)統(tǒng)計(jì)該字段在表中出現(xiàn)的次數(shù),忽略字段為null 的情況。即不統(tǒng)計(jì)字段為null 的記錄。
– count() 包括了所有的列,相當(dāng)于行數(shù),在統(tǒng)計(jì)結(jié)果的時(shí)候,包含字段為null 的記錄;
– count(1) 用1代表代碼行,在統(tǒng)計(jì)結(jié)果的時(shí)候,包含字段為null 的記錄 。
/*
很多人認(rèn)為count(1)執(zhí)行的效率會(huì)比count()高,原因是count()會(huì)存在全表掃描,而count(1)可以針對(duì)一個(gè)字段進(jìn)行查詢(xún)。其實(shí)不然,count(1)和count(*)都會(huì)對(duì)全表進(jìn)行掃描,統(tǒng)計(jì)所有記錄的條數(shù),包括那些為null的記錄,因此,它們的效率可以說(shuō)是相差無(wú)幾。而count(字段)則與前兩者不同,它會(huì)統(tǒng)計(jì)該字段不為null的記錄條數(shù)。
下面它們之間的一些對(duì)比:
1)在表沒(méi)有主鍵時(shí),count(1)比count()快
2)有主鍵時(shí),主鍵作為計(jì)算條件,count(主鍵)效率最高;
3)若表格只有一個(gè)字段,則count()效率較高。
*/
總結(jié)
以上是生活随笔為你收集整理的count() * ,1,字段 三兄弟的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 景天属植物有哪些分类 景天属植物包括什么
- 下一篇: having vs where