小弟有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
除了这两种,还有更节省资源吗?
先对比这两段sql的执行计划 IO开销各占比率,
再把以下两个统计开启 就清楚的看到两者的差距了
SET STATISTICS IO ON //可以准确的看到SQL读取数据的次数
SET STATISTICS Time ON //可以准确的看到SQL语句的执行时间
问题针对的是MySQL
这个太深。。。
一样。
恩,谢谢。
如果是sql 或者oracle的话 是一样的,mysql 不清楚
这货还就是mysql
这两货是一样的,也就写法的差异。sql server中推荐第一种,符合最新的sql标准。
那这意思就是这两货,用哪个都行。。。。
@yuankess: 是的!不过left join这些就不行了。
@幻天芒:哦哦,晓得。
看了楼上同仁们的处理挺好,要想提高效率。优先可以从数据库表结构进行优化。
调皮的问一句,你是这方面高手么?
应该无差别 只是写法不同而已
哦哦
一样的sql语句,不过应用的不是一个标准而已。mysql不知道,但是oracle中是一样的。