mysql 多表查询优化

遗失蓝鲸 发布于 2016/12/29 09:10
阅读 809
收藏 2

我目前有三个表,A,B,C ,这三个表中通过ID关联,现在要关联查询三个个,我是这样查询的 

select a.id,b.id,c.id from A a inner join B b on a.id=b.Aid inner join C c on b.id=c.Bid where a.id=1

现在经理要我改成这样的

select a.id,b.id,c.id from A a,B b,C c where a.id=b.Aid and b.id=C.Bid and a.id=1

我想问下这两个在性能方面有什么区别吗


加载中
0
Ambitor
Ambitor
你们经理是呆逼~,这只是sql的两种规范,而join相对来说是新规范,join比较灵活,而且数据库很多子查询都会被mysql优化成join操作。办了他 上位 ~
0
Zhang_Java
Zhang_Java
这两种写法貌似是一样的吧
0
遗失蓝鲸
遗失蓝鲸

引用来自“Ambitor”的评论

你们经理是呆逼~,这只是sql的两种规范,而join相对来说是新规范,join比较灵活,而且数据库很多子查询都会被mysql优化成join操作。办了他 上位 ~
我对数据库优化这块不怎么了解,他和我说在 where 后面加条件 性能比较好 ,真的是这样的吗?还是这两种性能都一样的,求大神指导
0
Ambitor
Ambitor

引用来自“Ambitor”的评论

你们经理是呆逼~,这只是sql的两种规范,而join相对来说是新规范,join比较灵活,而且数据库很多子查询都会被mysql优化成join操作。办了他 上位 ~

引用来自“卢峰”的评论

我对数据库优化这块不怎么了解,他和我说在 where 后面加条件 性能比较好 ,真的是这样的吗?还是这两种性能都一样的,求大神指导
你们经理是逗逼哦,你叫他给说说理由~ 还性能好点哦,依据呢。 事实上我建议用join,比较灵活,因为你第二种写法只能使用inner join 如果你left 或者 right  join   第二种规范是支持不了的。不过要说的是 如果是内连接的话 两者是一样的~  
0
妹子楼顶有鸽子
妹子楼顶有鸽子
赞同后面一种的写法。个人习惯问题...
0
p
pikachu2018

后面一个的确看上去简单一些,但是前面那个才是内连接符合现在规范的写法吧.而且方便修改左右连接.a.id=1已经是条件非常苛刻的了,在这里二者性能没有什么差距.

0
leh
leh
后一种在内存中会创建临时表,耗费性能
0
柴九
还以为是知识点,打开一看是笑话
返回顶部
顶部