美文网首页程序员
mysql 里 delete in 语句暴慢无比 优化

mysql 里 delete in 语句暴慢无比 优化

作者: 数据小菜鸟 | 来源:发表于2018-12-19 11:02 被阅读0次

十万级别查询量 志强e5 cpu 单核100% 超3分钟才能跑完。
优化后10秒内可以跑完。
思路 通过临时表创建索引用 空间换时间避免频繁读取原表信息

/*正常写法*/
DELETE from activity where id not in ( SELECT id from activity_data);

/*优化后写法*/
DELETE from activity where id not in (select * from (SELECT id from activity_data) t);

mysql删除原则
not exist 比not in执行效率高 (线上项目保持正确性,没有尝试网上有人推荐使用 not exist 由于改动大没有尝试)
truncate 比 delete执行效率高

相关文章

网友评论

    本文标题:mysql 里 delete in 语句暴慢无比 优化

    本文链接:https://www.haomeiwen.com/subject/kgidkqtx.html