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

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

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

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

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

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

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

相关文章:

  • 2021-07-20
  • 2021-12-09
  • 2021-08-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
  • 2021-09-20
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-19
  • 2021-09-22
  • 2022-12-23
  • 2021-07-13
相关资源
相似解决方案