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)