首页 新闻 会员 周边 捐助

sql 语句执行效率 inner join 和 where 语句

0
悬赏园豆:5 [已解决问题] 解决于 2013-12-04 09:57

小弟有2条sql语句,取出来的结果是一样的,但不知哪个执行效率更高一些,还请高手来给解答一番。。。

1,

select RbacBase.perm_func.func_id,RbacBase.perm_func.func_remark,RbacBase.perm_cont.cont_id,RbacBase.perm_cont.cont_remark from RbacBase.perm_func inner join RbacBase.perm_cont on RbacBase.perm_func.cont_id=RbacBase.perm_cont.cont_id

2,

select RbacBase.perm_func.func_id,RbacBase.perm_func.func_remark,RbacBase.perm_cont.cont_id,RbacBase.perm_cont.cont_remark from RbacBase.perm_func,RbacBase.perm_cont where RbacBase.perm_func.cont_id=RbacBase.perm_cont.cont_id

除了这两种,还有更节省资源吗?

yuankess的主页 yuankess | 菜鸟二级 | 园豆:252
提问于:2013-12-03 15:54
< >
分享
最佳答案
0

先对比这两段sql的执行计划 IO开销各占比率,

再把以下两个统计开启  就清楚的看到两者的差距了

SET STATISTICS IO ON  //可以准确的看到SQL读取数据的次数

SET STATISTICS Time ON  //可以准确的看到SQL语句的执行时间

收获园豆:1
Zery | 大侠五级 |园豆:6151 | 2013-12-03 15:59

问题针对的是MySQL

dudu | 园豆:29568 (高人七级) | 2013-12-03 16:02

这个太深。。。

yuankess | 园豆:252 (菜鸟二级) | 2013-12-04 09:58
其他回答(7)
0

一样。

Launcher | 园豆:45050 (高人七级) | 2013-12-03 16:20

恩,谢谢。

支持(0) 反对(0) yuankess | 园豆:252 (菜鸟二级) | 2013-12-04 10:02
0

如果是sql 或者oracle的话 是一样的,mysql 不清楚

收获园豆:1
死白的man | 园豆:2135 (老鸟四级) | 2013-12-03 16:21

这货还就是mysql

支持(0) 反对(0) yuankess | 园豆:252 (菜鸟二级) | 2013-12-04 10:02
0

这两货是一样的,也就写法的差异。sql server中推荐第一种,符合最新的sql标准。

收获园豆:1
幻天芒 | 园豆:37207 (高人七级) | 2013-12-03 16:36

那这意思就是这两货,用哪个都行。。。。

支持(0) 反对(0) yuankess | 园豆:252 (菜鸟二级) | 2013-12-04 09:59

@yuankess: 是的!不过left join这些就不行了。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2013-12-04 11:12

@幻天芒:哦哦,晓得。

支持(0) 反对(0) yuankess | 园豆:252 (菜鸟二级) | 2013-12-04 16:23
0
收获园豆:1
Rookier | 园豆:652 (小虾三级) | 2013-12-03 16:40

 恩,会好好看看的。

支持(0) 反对(0) yuankess | 园豆:252 (菜鸟二级) | 2013-12-04 10:01
0

看了楼上同仁们的处理挺好,要想提高效率。优先可以从数据库表结构进行优化。

收获园豆:1
雾静 | 园豆:561 (小虾三级) | 2013-12-03 20:31

调皮的问一句,你是这方面高手么?

支持(0) 反对(0) yuankess | 园豆:252 (菜鸟二级) | 2013-12-04 10:00
0

应该无差别  只是写法不同而已

Albert Fei | 园豆:2102 (老鸟四级) | 2013-12-04 09:26

哦哦

支持(0) 反对(0) yuankess | 园豆:252 (菜鸟二级) | 2013-12-04 10:00
0

一样的sql语句,不过应用的不是一个标准而已。mysql不知道,但是oracle中是一样的。

bitbug | 园豆:470 (菜鸟二级) | 2013-12-04 10:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册