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

解决方案 »

  1.   


    -- 哪个效率高:应该是在两个SQL语句执行结果完全一样的情况下,才有比较的意义!
      

  2.   

    我很想说。楼主,这两个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??木有用啊
      

  3.   

    如果非要算效率..肯定是count(1) 至少查询的时候不用去查字段的所属表..也不用进行id-3运算
      

  4.   

    当然是第2个效率高些,count(1)不用到数据字典中检索字段,where先过滤不符合条件的记录,而且没有id -3运算。
      

  5.   

    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
      

  6.   

    没懂这2个语句比较效率的意义何在另外话说  10g后  count(1) 和count(*) 米差别了哦