今天在做优化的时候,碰到写的简单delete语句执行起来很慢,需要几分钟,数据也才几万。把语句搂出来一看,就是很普通的删除。
比如如下的mysql:
delete from tb_Info where PlanID in(select PlanID from tb_Info where 1=1 );
这个语句的效率就很慢,超慢,转化后为如下语句
delete from tb_Info where PlanID in(select * from(select PlanID from tb_Info where 1=1 ));
转化后执行时间在1秒之内,网上的解释是
通过临时表创建索引用空间换时间避免频繁读取原表信息,其实不太理解他的原理!
总结下这个技巧,希望能帮到你。