当前位置: 代码迷 >> 其他数据库 >> SQL语句效率有关问题
  详细解决方案

SQL语句效率有关问题

热度:7697   发布时间:2013-02-26 00:00:00.0
SQL语句效率问题
大家帮忙看看这2个sql语句哪个查询的速度更快点。谢谢帮忙。比较着急。在做性能测试。

select * FROM
  表A LEFT OUTER JOIN 表B ON (表A.id || ' ' =表B.id) ,表C , 表D, 表E
Where其他条件


select * FROM
  表A ,表B ,表C , 表D, 表E
Where 其他条件 and 表A.id || ' ' =表B.id



------解决方案--------------------------------------------------------
如果各种条件是一致的话,内连接是最快的。即第二种方法
------解决方案--------------------------------------------------------
理论上讲,连接中内连接是最快的,因为只有符合条件的记录才会筛选出来
------解决方案--------------------------------------------------------
1、不知道你的数据库是否有如MYSQL的EXPLAIN,检查SQL语句执行情况;
2、第一个是连接后再WHERE,第二个是将大多数条件在ON中,过滤了不符合条件的记录,再WHERE;
3、建立你自己查一下你的数据库系统,是否有
检查SQL语句执行情况的命令。
------解决方案--------------------------------------------------------
你的两种方法都直接指定了表之间的联接顺序,这样数据库就不会再根据表中数据的实际情况进行优化你的SQL语句执行方案了,

实现同样的结果不同的筛选顺序效率是不一样的。 设想一下,从100个人中挑出男性姓张的。是先选姓张的(估计只有3个)然后再在这三人中选出男的,还是先选男的(30个),然后再选姓张的。显然第二种花时间会多。
------解决方案--------------------------------------------------------
是的,数据库的SQL语句优化在教材上是专门的一章。

一般来说,大型数据库自身会帮你做这些优化,如果你不加那些括号的话。
  相关解决方案