sql not in 可以优化吗

2020-03-19 14:59:30 +08:00
 rqxiao

DELETE FROM a WHERE a.mobile NOT IN ( SELECT DISTINCT mobile FROM b WHERE mobile IS NOT NULL )

比如这样的一条 sql 逻辑 ,not in

数据量很大 删了好久

2503 次点击
所在节点    程序员
7 条回复
heaton_nobu
2020-03-19 15:49:33 +08:00
1. NOT EXISTS
2. LEFT JOIN
ganbuliao
2020-03-19 16:00:36 +08:00
子查询当然慢了 和 not in 无关
hammer86
2020-03-19 16:04:13 +08:00
not in 不走索引 所以慢
sagaxu
2020-03-19 16:32:07 +08:00
shangfabao
2020-03-19 16:34:32 +08:00
left join * b
where b.* is null
alya
2020-03-19 16:53:29 +08:00
left semi join
rayduan
2020-03-19 17:21:23 +08:00
IS NOT NULL 和 NOT IN 都不走索引,能不慢么,楼上都对

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

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

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

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

© 2021 V2EX