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

       

一、性能测试背景

由于咱们Labway系统程序数据库层调用了大量的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(*)和count(1)的sql性能分析

--count(1)的sql性能

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

由此看出,没有加索引的情况下,同样的结果集count(*)耗时100473us比count(1)耗时103801us要快。

 

 

四、加索引的情况

 

--count(*)的sql性能

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

--count(1)的sql性能

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

由此看出,加索引的情况下,同样的结果集count(*)耗时225649us比count(1)耗时86138us要慢。

 

五、sql性能总结

1、查询条件中没有索引时,count(*)比count(1)查询速度要快些。

2、查询条件中有索引时,count(1)比count(*)查询速度要快些。
 

相关文章:

  • 2022-01-07
  • 2021-06-12
  • 2022-12-23
  • 2021-10-02
  • 2021-04-06
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-19
  • 2021-10-16
相关资源
相似解决方案