Karp 的技术博客

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 执行时间 , 非常的漫长 还搞不定. 维护时间肯定不能等那么久. 所以采用上面的老方案 替换表从库导入.

mysql

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2024年12月16日 09:55
1

目录

来自 《记录 PT-Online-Schema-Change 在线优化内存碎片失败 , 大表生产优化方案》