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

2022-09-21 17:38:04 +08:00
 s609926202


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

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

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

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

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

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

© 2021 V2EX