Mysql删除百万级别的数据,innoDB的,不能删除整张表,求给好的方案

求大神解答,有什么好的效率高的方案推荐,而不是删库跑路。

阅读 3.8k
4 个回答

个人感觉如果是只操作一次的话,就分批删除。可以写一个定时任务,每次删除一万条,然后,使用crontab调用。每五分钟或者一分钟调用一次。写日志或者新建一个表,保存删除到了哪一条(可以存id)方便下次任务执行。

哥们 知道重命名么 修改后再创建一个

如果是删除表绝大部分数据,可以考虑将需要的数据插入一个新表,然后将通过重命名的方式更换为原有的表名。

如果mysql不支持在线修改表名称,那么需要在生产环境需要短暂的停机。

一开始就要做db级分区,现在删除痛苦了吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题