左连接表查询用到了索引,为何还是走全表扫描?

2022 年 9 月 21 日
 s609926202


如图,t2 表走索引只有 37 行,左连接表 t1 也用到了索引,但是走的却是全表扫描。

请教这个是什么情况,怎么优化呢、
2372 次点击
所在节点    MySQL
10 条回复
F281M6Dh8DXpD1g2
2022 年 9 月 21 日
哪里全表扫描了?
不是写了一个是主键一个是索引么?
kera0a
2022 年 9 月 21 日
t1.id 和 t2.file_id 的编码一样么?
s609926202
2022 年 9 月 21 日
@liprais 但是 t2 表总行数也是 113283
s609926202
2022 年 9 月 21 日
@liprais 说错了,是 t1 表
F281M6Dh8DXpD1g2
2022 年 9 月 21 日
你知道 left join 啥意思么?
@s609926202
Wdafff
2022 年 9 月 21 日
先条件过滤再 join
nekoneko
2022 年 9 月 21 日
没问题啊
lookStupiToForce
2022 年 9 月 21 日
key 里用到 PRIMARY ,怎么会是全表扫描
你可以再确认一下 t2 那 37 条数据是否真的能关联到 11w+行,如果确认这个估计有错误,可以 analyze 一下 t1 表
xuanbg
2022 年 9 月 21 日
这个执行计划里面没有全表扫描啊,不是很正常的一个查询么。。
hscovo
2022 年 9 月 22 日
left join 我理解就是取出左表的每一行记录,去右表里面查询吧?

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

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

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

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

© 2021 V2EX