mysql 效率问题

2022-09-29 17:25:38 +08:00
 su2018

如图 图片链接: https://www.hualigs.cn/image/6335636377e9e.jpg

t 表的数据比 t4 的数据大很多

为啥把 left join 的表 采用一个子查询的方式后 居然比原先快那么多, 但是如果从 explain 来看的 还是第一种的要好吧

是不是因为采用了子查询改变了 查询表的顺序, 原先是先查 t 表 改用子查询后 先查 t4 的表 所以才导致效率快很多?

1344 次点击
所在节点    MySQL
3 条回复
7911364440
2022-09-29 17:50:34 +08:00
应该是的,你用 left join 把 t4 作为驱动表应该也很快
su2018
2022-09-30 10:09:05 +08:00
@7911364440 怎样才能作为驱动表? 也是用一个子查询?
7911364440
2022-09-30 10:41:36 +08:00
驱动表是指 join 左边的表,一般用小表作为驱动表可以减少被驱动表的访问次数。

你把 left join 改成 inner join sql 语句的逻辑就不一样了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/883869

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX