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 得到的...