count 和count 1 的sql效能分析

2022-05-02 09:30:09 字數 1247 閱讀 8979

count(*)和count(1)的sql效能分析

一、效能測試背景

系統程式資料庫層呼叫了大量的count(*) 的sql語句,鑑於開發的疑惑count(*)與count(1)到底有什麼區別。哪個效能更好更快一些。下面我們帶著疑惑進行sql效能分析。

二、測試資料準備

create table test1(id number,name varchar2(50),create_time date);
--插入1000000條資料。

begin

for i in 1 ..10000000 loop

insert into test1 values(i,'dba-fashion測試'||i,sysdate,'通過');

end loop;

commit;

end;

三、不加索引的情況--count(*)的sqll效能

--count(1)的sql效能

由此看出,沒有加索引的情況下,同樣的結果集count(*)耗時100473us比count(1)耗時103801us要快。

四、加索引的情況--count(*)的sql效能

--count(1)的sql效能

由此看出,加索引的情況下,同樣的結果集count(*)耗時225649us比count(1)耗時86138us要慢。

五、sql效能總結1、查詢條件中沒有索引時,count(*)比count(1)查詢速度要快些。

2、查詢條件中有索引時,count(1)比count(*)查詢速度要快些。

count 和count 1 的區別

create table test1 id number,name varchar2 50 create time date 插入1000000條資料。begin for i in 1 10000000 loop insert into test1 values i,dba fashion測試 i,...

COUNT 1 和COUNT 的區別

兩者本質上沒有任何區別。參見mysql 參考手冊 innodbhandlesselect count andselect count 1 operations in the same way.there is no performance difference.一 count情況 1 count 1...

count 1 和count 的區別

count 1 和count 的區別,對這個問題有疑問的可以看看 count 1 其實就是計算一共有多少符合條件的行。1並不是表示第乙個字段,而是表示乙個固定值。我們可以想成表中有這麼乙個字段,這個字段就是固定值1,count 1 就是計算一共有多少個1.同理,count 2 count 3 得到的...