十万级别查询量 志强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执行效率高