前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >MySQL 中 delete in/not in 特别慢、效率巨差的解决办法

MySQL 中 delete in/not in 特别慢、效率巨差的解决办法

原创
作者头像
Power
发布2025-03-05 11:28:00
发布2025-03-05 11:28:00
4100
代码可运行
举报
运行总次数:0
代码可运行

早就听说 MySQL 中的 in/not in 操作巨慢,今天在工作中真实体验了一把。10 万条数据,下面的 sql 语句跑了半小时还没完成。

代码语言:javascript
代码运行次数:0
复制
delete from activity_student where student_id not in (select sid from students)

解决办法是通过临时表创建索引,用空间换时间避免频繁读取原表信息。

代码语言:javascript
代码运行次数:0
复制
delete from activity_student where student_id not in (select * from (select sid from students) tmp)

改成上面的 sql 语句后,40 秒结束战斗!

网上说 not exist 比 not in 执行效率高,后续测试一下再发出来。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
LV.
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档