首页新闻找找看学习计划

请教一个SQL语句优化的问题.

0
悬赏园豆:5 [待解决问题]

原始SQL:

select * from a

join b

on a.ID=b.AID

where a.age>18 and b.IsDelete=0

 

请问这种SQL会被数据库优化成下边这样吗?

[先筛选出符合的记录再join]

select * from

(select * from a where a.age>18) a

join

(select * from b where b.IsDelete=0) b

on a.ID=b.AID

 

我用的是MYSQL,请问它会优化吗?

 

hexllo的主页 hexllo | 菜鸟二级 | 园豆:405
提问于:2015-06-10 12:23
< >
分享
所有回答(3)
0

如果查询引擎能够这么自动,那么很多最佳实践的书就不会有市场了。

别老想着偷懒,多根据实际执行计划实验,老老实实写最优的查询。

JeffWong | 园豆:2021 (老鸟四级) | 2015-06-10 15:57
0

数据库不会自动帮你优化的,只能试试哪个查询快点用哪个

liaoshifa10 | 园豆:266 (菜鸟二级) | 2015-06-10 17:45
0

这两个SQL的执行效率应该差不多。

第一个SQL更好。

傲慢与偏剑 | 园豆:381 (菜鸟二级) | 2015-06-18 16:52

为什么说第一个更好?

支持(0) 反对(0) hexllo | 园豆:405 (菜鸟二级) | 2015-06-21 14:58

@hexllo: 第一个给了数据库最大的优化的机会。

支持(0) 反对(0) 傲慢与偏剑 | 园豆:381 (菜鸟二级) | 2015-06-21 15:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册