MYSQL数据库因生产原因需要删除大量数据,因数据量太大接近上亿条,用常规delete删除小数据可以,删除几千万大数据量会非常慢,并且不会释放出磁盘空间,
采用新建表,导入无需删除的数据,然后删除老表,把新表改名为老表,步骤如下:
1、基于老表新建新表!
create table staff_track_new like staff_track;
2、插入数据(几千万的数据量一定要分批插入,一次50万为最佳,毕竟mysql的数据处理能力有限),可以按ID查询后插入!
insert into staff_track_new select * from staff_track where …;
新表中只保留有用的数据,硬盘空间得以释放!
3、drop删除掉老表
drop table staff_track;
4、重命名新表为“sell”
alter table staff_track_new rename to staff_track;