SQL查询的性能对比

来源:百度知道 编辑:UC知道 时间:2024/06/04 06:40:08
select a.*, (select id from b where b.id = a.b_id) b.title from a

select a.*, b.title from a, b where b.id=a.b_ID
哪个性能好些?

这个以前做过试验,第一个效率极差.其实不用问别人.自己在查询分析器里好好的测试一下,读下秒数,是个很好的练习.

多做几个语句,有助以后写代码的优化.

另:前一句明显查不出.呵.

select a.*, (select id from b where b.id = a.b_id) b.title from a
属相关子查询,效率极低。

select a.*, b.title from a, b where b.id=a.b_ID
联合查询,正常效率,数据库引擎会自行优化。例如:是否建有索引会影响效率差异达百倍以上。

效率最高的是显式指定联接方式,以下SQL假定b.id为主键。

select b.id, b.title, a.* from b
left outer join a
on b.id = a.id

另外,显式指定各列而不使用a.*也是SQL优化的措施之一。

select a.*, (select id from b where b.id = a.b_id) b.title from a
我怀疑这个是错的``````不能测试,只能怀疑了。
一般都是用的where吧。。。
然后不用where就用显性连接,left outer join 之类的,据说显性连接效率较高

select a.*, b.title from a, b where b.id=a.b_ID
好,
因为另外一个实际上是 查询了3次,性能肯定差啊

select a.*, b.title from a, b where b.id=a.b_ID

因为之前的带嵌套查询了~

当然是后者,另外,前者应该是不能运行的。