SELECT * FROM A WHERE ID=1;就是一个最最基本的查询语句。
如果不考虑索引的话,
想要得到相同的查询结果,
有没有效率更高的SQL查询语句?SELECT  * FROM A GROUP BY ID HAVING ID=1;
这个和上边那个哪个更快?请各位高手说明一下结果和原因,谢谢!

解决方案 »

  1.   

    如果是sqlserver的话,请你在查询分析器看一下,如果是2005就在2005的management studio中执行一下然后看一下查询计划,sql性能,时间等信息都在上面,看一下什么都清楚了
      

  2.   

    我用的是MySql,我不只是想知道结果,还有原因,期待高人
      

  3.   

    SELECT a1,a2,a3 FROM A WHERE ID=1;
    这个比星快SELECT * FROM A WHERE ID=1; 不用来解析*都包含那些字段了。
    一定是上面的快,我猜的。
      

  4.   

    select a.1,a.2.... from a a
    把要查的每一项都列出来。不要用*
    这样在oracle中效率要高很多在复杂运算上
      

  5.   

    如果单单比较这两个语句,也没有索引和分区情况
    SELECT * FROM A WHERE ID=1; 会快点,尤其是大数据量的情况下因为第二句里有group by 这个关键字,它会引起查询的数据排序. 
    数据量越大就越慢其他会引起排序的关键字还有 order by ,distinct, union 等仅供参考
      

  6.   

    数据量小的没什么影响,数据量大的group by 关键字会影响速度,因为要进行排序
      

  7.   

    SELECT * FROM A WHERE ID=1; SELECT  * FROM A GROUP BY ID HAVING ID=1; 
    感觉上面的快些
      下面的还有GROUP BY ID  
       
     -----不太懂   标记下 
      等高手   学习
      

  8.   

    谢谢大家指教,问题解决了。
    还有疑问的朋友,可以看下以下链接:http://www.cnblogs.com/s021368/articles/1288720.html