如图 图片链接: https://www.hualigs.cn/image/6335636377e9e.jpg
t 表的数据比 t4 的数据大很多
为啥把 left join 的表 采用一个子查询的方式后 居然比原先快那么多, 但是如果从 explain 来看的 还是第一种的要好吧
是不是因为采用了子查询改变了 查询表的顺序, 原先是先查 t 表 改用子查询后 先查 t4 的表 所以才导致效率快很多?
1
7911364440 2022-09-29 17:50:34 +08:00
应该是的,你用 left join 把 t4 作为驱动表应该也很快
|
2
su2018 OP @7911364440 怎样才能作为驱动表? 也是用一个子查询?
|
3
7911364440 2022-09-30 10:41:36 +08:00
驱动表是指 join 左边的表,一般用小表作为驱动表可以减少被驱动表的访问次数。
你把 left join 改成 inner join sql 语句的逻辑就不一样了 |