MySQL大表备份

lishihuan小于 1 分钟

MySQL大表备份

场景描述,目前由于有张表数据量过大,导致已经影响正常使用,现在考虑创建历史表,原表只保留10天的数据,通过数据库的事件 每天凌晨1点执行迁移

解决思路

  • ROUND_TIME 创建索引【目前是根据时间字段去进行迁移的】
  • 创建错误日志表【记录每次执行的结果,方便排查问题】
  • 创建存储过程
  • 测试
  • 模拟异常情况执行

具体实现

1.

  • 执行存储过程
CALL move_round_record_data();
-- 检查原表是否残留超期数据
SELECT COUNT(*) 
FROM od_round_record 
WHERE ROUND_TIME < CURDATE() - INTERVAL 10 DAY;

-- 检查历史表数据量
SELECT COUNT(*) FROM OD_ROUND_RECORD_HIS;