项目需求:所用数据库mysql,数据量表A有70W+数据量,现需删除50W+的数据量,
通过表B的某个字段作为删除条件,表A和表B之间通过其他字段关联。
delete from 表A where 条件有多个,但都是一个字段
字段的值对应表B的某个值。
1。首先试的是通过java编写代码批量删除,效果不理想,弃之。20+min
2。通过where in(表B的过滤),效果不理想,弃之。20+min
3。通过delete 表A from 表A,表B where 表A.字段=表B.字段 and 表B.其他字段(删除条件),效果可以。2min左右
注:如果要删除的表中有索引,需先删除索引在进行删除数据,数据清空后,在把索引建上。
作者:三年成才
日期:2019.7.17
篇数:1