1.2亿数据量 , 删除到2w条后
2024-12-16T09:38:23.png

2024-12-16T08:46:22.png

异步的修复内存碎片失败 , 最后只能使用老办法 , rename table 了

执行方案如下 :

  1. 对外公告维护
  2. 关闭所有写入脚本和接口
  3. 确认待维护表无新增数据
  4. rename table table_name to new_table_name
    这一步非常快 就算有非常大的数据量更换也只用了1秒不到
  5. 导出从库中的 table_name 表记录, 在主库创建 新的 table_name ,新创建表 子增ID + 10w 保证ID 唯一 , insert 从库数据.

为什么不使用 INSERT INTO table_name SELECT * FROM new_table_name ?
因为执行太慢了, 在维护公告之前 我就已经测试了 上面的 sql 执行时间 , 非常的漫长 还搞不定. 维护时间肯定不能等那么久. 所以采用上面的老方案 替换表从库导入.