COUNT()函数的性能问题
table表中有不止一列
select count(*) from table
和
select count(id) from table
有什么性能差别吗
第二种是否会好一些呢?
------解决方案--------------------1) count(*) 统计所有行、很难走索引、或者走索引代价极大、CBO不会走
2)count(id)统计 id 不为 空的行、如果id列有索引、就可以走索引
综上、在满足业务的情况下、第二种好、
------解决方案--------------------看效率最最好以查询计划为主,上面两个语句如果仅是统计表的行数,大多数情况下效率是一样的
SQL> select count(*) from emp;
COUNT(*)
----------
14
执行计划
----------------------
Plan hash value: 2937609675
-------------------------------
------解决方案-------------------- Id
------解决方案-------------------- Operation
------解决方案-------------------- Name
------解决方案-------------------- Rows
------解决方案-------------------- Cost (%CPU)
------解决方案-------------------- Time
------解决方案--------------------
-------------------------------
------解决方案-------------------- 0
------解决方案-------------------- SELECT STATEMENT
------解决方案-------------------- ------解决方案-------------------- 1
------解决方案-------------------- 1 (0)