日期:2014-05-17  浏览次数:20593 次

sql效率!
1.select count(id-3) from table;
2.select count(1) from table where id>3;
哪个效率高呢!

------解决方案--------------------
-- 如果两个语句的结果一样的话,纯属巧合;
-- 更甭提哪个效率高啦!
------解决方案--------------------
SQL code
我很想说。楼主,这两个sql真不一样结果
--这个sql,就是统计table的件数啊,id-3是没啥实际意义的啊
1,select count(id-3) from table

--这个sql,是统计table表中id>3的件数啊
2,select count(1) from table where id>3

如果非要说效率的话,那也是第二个啊?第一个你要敢什么啊?还id-3??木有用啊

------解决方案--------------------
如果非要算效率..肯定是count(1) 至少查询的时候不用去查字段的所属表..也不用进行id-3运算
------解决方案--------------------
当然是第2个效率高些,count(1)不用到数据字典中检索字段,where先过滤不符合条件的记录,而且没有id -3运算。
------解决方案--------------------
SQL> select id from a;
 
ID
---------------------------------------
1
2
3
4
5
 
SQL> select count(id-3) from a;
 
COUNT(ID-3)
-----------
5
 
SQL> select count(*) from a where id>3;
 
COUNT(*)
----------
2
------解决方案--------------------
没懂这2个语句比较效率的意义何在

另外话说 10g后 count(1) 和count(*) 米差别了哦