【mysql 删除大表中的数据】如何删除100G以上的大表中的数据

两个删除策略:
1、慢的方法是写脚本定时任务带where的delete语句 慢慢删除 范围定小一点 锁的时间很短 客户端无感;
2、快的方法就是找个业务空的时候 新建表 程序往新表中插入 然后把老表中需要的记录让新表中插入;

看到mysql文档有一种解决方案:https://dev.mysql.com/doc/refman/5.0/en/delete.html

【mysql 删除大表中的数据】如何删除100G以上的大表中的数据_第1张图片

简单的翻译下:
删除达标上的多行数据时,innodb会超出lock table size的限制,最小化的减少锁表的时间的方案是:

1、选择不需要删除的数据,并把它们存在一张相同结构的空表里

2、重命名原始表,并给新表命名为原始表的原始表名

3、删掉原始表
总结一下就是,当时删除大表的一部分数据时可以使用 见新表,拷贝数据,删除旧表,重命名的方法。

你可能感兴趣的:(数据开发-mysql)