国产精一区二区_午夜视频99_免费白白视频_中文字幕一区免费

熱門文章> count(*)的含義 >

count(*)的含義

36氪企服點評小編
2022-01-14 17:35
2688次閱讀

count(*)指的是 :統(tǒng)計所有的行數(shù),包括為null的行。count(*)不單會進行全表掃描,也會對表的每個字段進行掃描。而count('x')或者count(COLUMN)或者count(0)等則只進行一個字段的全表掃描。需要注意的是count()是聚合函數(shù),對于返回的結(jié)果集,一行行地判斷,累計值加1,最后返回累計值,count(*)、count(主鍵ID)和count(1)表示返回滿足條件的結(jié)果集的總行數(shù)。

count(*)的含義count(*)的含義

1、count(1):

count(1):計算一共有多少符合條件的行,不會忽略null值。

其實就可以想成表中有這么一個字段,這個字段就是固定值1,count(1),就是計算一共有多少個1。同理,count(2),也可以,得到的值完全一樣,count('x'),count('y')都是可以的。

count(*),執(zhí)行時會把星號翻譯成字段的具體名字,效果也是一樣的,不過多了一個翻譯的動作,比固定值的方式效率稍微低一些。

2、count(列名):

count(列名):查詢列名那一列的,字段為null不統(tǒng)計。

這里的空不是只空字符串或者0,而是表示null的計數(shù),即某個字段值為NULL時,不統(tǒng)計。

3、執(zhí)行效果:

(1)count(*)包括了所有的列,相當(dāng)于行數(shù),在統(tǒng)計結(jié)果的時候,不會忽略列值為NULL。

(2)count(1)包括了忽略所有列,用1代表代碼行,在統(tǒng)計結(jié)果的時候,不會忽略列值為NULL。

(3)count(列名)只包括列名那一列,在統(tǒng)計結(jié)果的時候,會忽略列值為空。

4、執(zhí)行效率:

(1)列名為主鍵,count(列名)會比count(1)快  。

(2)列名不為主鍵,count(1)會比count(列名)快  。

(3)如果表多個列并且沒有主鍵,則 count(1) 的執(zhí)行效率優(yōu)于 count(*)  。

(4)如果有主鍵,則 select count(主鍵)的執(zhí)行效率是最優(yōu)的。

(5)如果表只有一個字段,則 select count(*)最優(yōu)。

[免責(zé)聲明]

文章標(biāo)題: count(*)的含義

文章內(nèi)容為網(wǎng)站編輯整理發(fā)布,僅供學(xué)習(xí)與參考,不代表本網(wǎng)站贊同其觀點和對其真實性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時溝通。發(fā)送郵件至36dianping@36kr.com,我們會在3個工作日內(nèi)處理。

消息通知
咨詢?nèi)腭v
商務(wù)合作