COUNT(*)與COUNT(列) 要看是否使用到索引以及索引列不為空,
不考慮索引的時候count(*) 反而更加快 , 因為優(yōu)化器列偏移算法的原因 , 越靠后的列越慢,
所以設(shè)計應(yīng)用的時候,經(jīng)常訪問的列應(yīng)該放在前面
表無索引時,count()的性能
drop table t purge;
table t as* from ;
alter table Tnull;
t set= ;
seton
set1000
seton
表無索引時收獲不止sql優(yōu)化pdf , count(*)的性能更好

文章插圖

文章插圖
count(*) from t;
表無索引時,count(列)的性能,這個列如果越靠后,性能越不好
count() from t;
表有列索引時,count(列)的性能很好
count() from t;
——————————————————————————————–
表有索引且索引列非空時 , count(*)的結(jié)果與count()查詢結(jié)果一致收獲不止sql優(yōu)化pdf , 優(yōu)化器自動把count(*)優(yōu)化成count(),所以這時候count(*)實質(zhì)就是count(),如果允許為空,這時候count(*)的結(jié)果與count()查詢結(jié)果可能不一致,優(yōu)化器改寫的前提是保證結(jié)果不出錯 , 會出錯的話 , 優(yōu)化器絕對不會改寫 。(為空時不進(jìn)行計數(shù)) , 這時候count(*)不會優(yōu)化成count(),查詢沒有count()快 。
alter table Tnot null;
count(*) from t;–與下面的count()效果一致
表有索引且索引列非空時,count(列)的性能
count() from t;
具體可以看看 《不止sql優(yōu)化》最后一章節(jié)
【* oracle COUNT與COUNT(列) 誰快誰慢?】本文到此結(jié)束,希望對大家有所幫助 。
- 新手必備—Visual Studio安裝與使用教程
- ?為什么要禁止中小學(xué)校舉辦或參與舉辦培訓(xùn)機(jī)構(gòu)?
- 《傳統(tǒng)育兒觀》二:育與教的不同,傳統(tǒng)育兒的次第論
- 簡單的手撕包菜 不一樣的營養(yǎng)與美味
- 歐蕙全系列產(chǎn)品說明介紹
- 怎么清洗與保養(yǎng)跑鞋
- 性格心理學(xué)
- 租房與買房的十大矛盾體生活
- 案例:女生與男友發(fā)生關(guān)系時被扼昏迷終離世,若有真愛怎會如此?
- 三體毀滅你與你何干什么意思 ?三體毀滅你,與你何干的理解
