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