早就听说 MySQL 中的 in/not in 操作巨慢,今天在工作中真实体验了一把。10 万条数据,下面的 sql 语句跑了半小时还没完成。
delete from activity_student where student_id not in (select sid from students)
解决办法是通过临时表创建索引,用空间换时间避免频繁读取原表信息。
delete from activity_student where student_id not in (select * from (select sid from students) tmp)
改成上面的 sql 语句后,40 秒结束战斗!
网上说 not exist 比 not in 执行效率高,后续测试一下再发出来。
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » MySQL 中 delete in/not in 特别慢、效率巨差的解决办法
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » MySQL 中 delete in/not in 特别慢、效率巨差的解决办法