count(*)和count(1)的sql功能剖析
一、功能测验布景
因为咱们Labway体系程序数据库层调用了很多的count(*) 的SQL句子,鉴于开发的疑问count(*)与count(1)到底有什么区别。哪个功能更好更快一些。下面咱们带着疑问进行SQL功能剖析。A8站源码交易平台
二、测验数据预备
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要慢。A8站源码交易平台
五、sql功能总结
1、查询条件中没有索引时,count(*)比count(1)查询速度要快些。
2、查询条件中有索引时,count(1)比count(*)查询速度要快些。