关联查询sql性能

时间:2021-03-05 13:28:20
声明-------      A:大表          B:小表

第一种写法.
select * from A a,B b
where 
b.id = a.b_id


第二种写法:
select * from A a,B b
wehre 
a.b_id = b.id


乍一看,两个sql是没有什么不一样的地方 ;
但仔细分析后就能看出区别在哪里?:
第一种写法是根据B表的id来关联A表的b_id;
而第二种写法是根据A表的b_id来关联B表的id;

这两种写法在查询效率上来讲也是存在着很大的差别的:(注:a > b)
第一种写法等于是 a的b次方     来进行遍历查询;  
而第二种写法等于是 b的a次方  来进行遍历查询;

由计算结果可知:
a的b次方  <  b的a次方

总结 :

当两个表进行关联时,可让小表的关联条件置于前面,大表的关联条件置于后面;
即 b.id = a.b_id;
这样将有效的提高本条sql的执行效率。