mysql迁移指定表历史数据方案

方案一:使用mysqldump导出导入

通过MySQL自带的mysqldump工具导出指定表的历史数据,再导入到目标数据库。适合数据量中等且允许停机迁移的场景。

sql 复制代码
# 导出指定表结构和数据(按条件筛选历史数据)
mysqldump -u username -p dbname tablename --where="create_time<'2023-01-01'" > history_data.sql

# 导入到目标数据库
mysql -u username -p target_db < history_data.sql

方案二:ETL工具同步

使用Kettle、Talend等ETL工具建立数据管道,可实现定时增量同步。适合需要持续同步历史数据的场景。

  • 配置源数据库和目标数据库连接
  • 编写转换流程:添加输入表(带时间条件筛选)、字段映射、输出表
  • 设置定时任务或立即执行

方案三:程序分批迁移

编写脚本分批次查询和插入数据,避免大事务导致数据库负载过高。适合大数据量迁移。

python 复制代码
import pymysql
batch_size = 5000

src_conn = pymysql.connect(source_db_config)
dst_conn = pymysql.connect(target_db_config)

while True:
    with src_conn.cursor() as cursor:
        cursor.execute(f"SELECT * FROM orders WHERE order_date<'2022-01-01' LIMIT {batch_size}")
        batch = cursor.fetchall()
        if not batch: break
        
    with dst_conn.cursor() as cursor:
        cursor.executemany("INSERT INTO orders_archive VALUES(%s,%s,...)", batch)
    dst_conn.commit()

方案四:主从复制过滤

配置MySQL主从复制时设置复制过滤器,仅同步特定表的历史数据。适合实时性要求高的场景。

sql 复制代码
# 在my.cnf中配置
replicate-wild-do-table=dbname.tablename_2020%
replicate-wild-do-table=dbname.tablename_2021%

方案五:表空间传输

对于InnoDB引擎,可直接导出表空间文件快速迁移。要求MySQL版本5.6+且目标表结构已存在。

sql 复制代码
-- 源库执行
FLUSH TABLES tablename FOR EXPORT;
-- 拷贝.ibd和.cfg文件到目标服务器
-- 目标库执行
ALTER TABLE tablename IMPORT TABLESPACE;

注意事项

  • 大表迁移建议在低峰期进行
  • 迁移前后校验数据量和关键字段一致性
  • 考虑建立临时索引加速历史数据查询
  • 对于频繁更新的表,迁移期间建议锁定写入
相关推荐
HackTwoHub2 小时前
AI大模型网关存在SQL注入、附 POC 复现、影响版本LiteLLM 1.81.16~1.83.7(CVE-2026-42208)
数据库·人工智能·sql·网络安全·系统安全·网络攻击模型·安全架构
l1t2 小时前
DeepSeek总结的DuckLake构建基于 SQL 原生表格式的下一代数据湖仓
数据库·sql
yaodong5186 小时前
不会Python也能数据分析:Gemini 3.1 Pro解决办公问题的SQL自动生成
python·sql·数据分析
jiushiapwojdap6 小时前
LU分解法求解线性方程组Matlab实现
数据结构·其他·算法·matlab
纽扣6677 小时前
【算法进阶之路】链表进阶:删除、合并、回文与排序全解析
数据结构·算法·链表
小李来了!8 小时前
Navicate/plsql连接Oracle数据库教程
数据库·oracle
苍煜8 小时前
慢SQL优化实战教学
java·数据库·sql
xvhao20139 小时前
单源、多源最短路
数据结构·c++·算法·深度优先·动态规划·图论·图搜索算法
爬山算法9 小时前
MongoDB(118)如何在升级过程中进行数据备份?
数据库·mongodb·oracle
m0_6294947311 小时前
LeetCode 热题 100-----17.缺失的第一个正数
数据结构·算法·leetcode