8
回答
mysql 多表查询优化
百度AI开发者大赛带你边学边开发,赢100万奖金,加群:418589053   

我目前有三个表,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

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


举报
卢峰
发帖于2年前 8回/772阅
共有8个评论 最后回答: 2年前
你们经理是呆逼~,这只是sql的两种规范,而join相对来说是新规范,join比较灵活,而且数据库很多子查询都会被mysql优化成join操作。办了他 上位 ~

引用来自“Ambitor”的评论

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

引用来自“Ambitor”的评论

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

引用来自“卢峰”的评论

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

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

顶部