mysql 数据转移历史表_mysql 历史数据表迁移方案

本文介绍了如何处理数据量大的MySQL表,如订单表和登录日志表,以减轻系统性能影响。提出了一种全备加增量备份的策略:首次全量备份,后续每日仅迁移新增数据至备份表,并在主库上分批删除旧数据。详细步骤包括使用SQL脚本和Shell脚本进行数据导出、增量备份、数据恢复以及定时任务设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当业务运行一段时间后,会出现有些表数据量很大,可能对系统性能产生不良的影响,常见的如订单表、登录log表等,这些数据很有时效性,比如我们一般很少去查上个月的订单,最多也就是报表统计会涉及到。

在我们的数据库中,用户登录表就是这种类型的表,一般而言,表中的数据是不可逆的,只有插入操作没有删除或者修改操作,表示在过去一段时间内完成的事实业务数据。比如登录表表示一段时间内用户的登录信息,登录一次游戏就会在数据库中记录一条数据。

1、对于备份这类表的策略是:

第一次备份全表的数据导入到备份表中,也就是全备。

以后每天只将增加的量自动迁移到备份表中,这里通过自增列的值相比较得到增量,如第一次全备导入备份表,这时自增列的最大值为max(idx),通过这个值到从库中查询,只要大于这个值的所有记录形成增量。

备份完成后,分批删除主库上的数据。

2、下面是具体操作步骤:

第一次全备和恢复

select * from table into outfile "/data/backup/xxxx.txt"; --导出备份数据

load data infile "/data/backup/ xxxx.txt " into table bak_table; --在另外服务器备份表中恢复

脚本程序实现:拉取线上服务器上的增量数据,然后导入本服务器,实现增量备份

1)需要在同一目录下建立三个sql脚本,如a.sql  b.sql  c.sql

a.sql: 拼接增量备份sql,形成备份语句

use report

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值