从单表到分表实现数据平滑迁移

从大数据量分库分表 MySQL 合并迁移数据到 TiDB 如果分表数据总规模特别大(例如大于 1 TiB),并且允许 TiDB 集群在迁移期间无其他业务写入,那么你可以使用 TiDB Lightning 对分表数据进行快速合并导入,然后根据业务需要选择是否使用 TiDB DM 进行增量数据的分表同步。本文所称“大数据量”通常指 TiB 级别以上。本文档举例介绍了导入数据的操作步骤。如果分库分表合并迁移在 1 TiB 以内,请参考从小数据量分库分表 MySQL 合并迁移数据到 TiDB,支持全量和增量且更为简单。使用 TiDB Lightning 快速合并导入的原理 阅读详情

背景

初到新公司接手支付中心系统,发现支付表单表数据量达到了 7 亿多,震惊之余不由的脊背发凉,这个系统运行犹如走钢丝,稍微有点风吹草动就可能造成线上事故,DBA 天天催着要数据迁移,给出大表解决方案,给出排期。

当你担心一件事要出问题,他就一定会出问题,不得不说这墨菲定律真™️准。营销部门搞活动,支付单量激增,客服反应好多用户投诉明明支付成功了,但还是处于支付中状态。打开日志排查原因,就是因为数据库响应慢,支付状态未能更新成功,导致未能及时通知上游系统支付成功结果。(当然支付逻辑也存在问题,这点不在此文讨论范围内)

痛定思痛,分库分表和数据迁移迫在眉睫。

分库?分表?

什么时候需要分库

分库主要是解决并发量大的问题,数据库的连接数是有限的,当读或者写的QPS过高,导致数据库连接数不够时,就需要考虑分库,通过增加数据库实例的方式来增加连接数,从而提升系统的并发性能。

什么时候需要分表

分表主要时应对数据量大的情况,当一个表的数据量过大时,不论是读还是写的性能都会出现明显下降,一张表的数据量最好控制在1000万以内(看硬件性能)。

业务增量分析及容量规划

首先通过计算得到高峰期QPS每秒约50,并发量不算特别高,所以没有必要做分库来分担并发量。

在业务高峰期的月份每日的支付单量约270多万,业务低峰期的月份每日的支付单量约130多万,每年大概的单量为6亿单左右,

按照3到5年的规划,每张表约1000万数据,计划分256张表。

我们目前数据库配置是32C/64G/3T SSD,满足需求。

数据迁移

数据迁移分析及遇到的问题:

  • 使用业务单号的hash值对256取模(hash(业务唯一ID)%256),得到表的索引值。之前单表存在唯一的业务单号,直接使用即可。
  • 需要将旧库新增的实时数据同步到新库,并记录开始数据的ID。
  • 需要将存量数据同步到新库,终止点为1中开始数据的ID。
数据迁移方案 双写迁移 简单来说,就是在线上系统里面,之前所有写库的地方,增删改操作,除了对老库增删改,都加上对新库的增删改,这就是所谓的双写,同时写俩库,老库和新库。   然后系统部署之后,新库数据差太远,用之前说的导数工具,跑起来读老库数据写新库,写的时候要根据 gmt_modified 这类字段判断这条数据最后修改的时间,除非是读出来的数据在新库里没有,或者是比新库的数据新才会写。简单来说,就是不允许用老数据覆盖新数据。   导完一轮之后,有可能数据还是存在不一致,那么就程序自动做一轮校验,比对新老库每个. 阅读详情

相关推荐

亿级数据分库分表实战:ShardingSphere的平滑迁移方案

《亿级数据下ShardingSphere平滑迁移方案》摘要:随着数据量突破亿级,传统数据库架构面临性能瓶颈。Apache ShardingSphere作为分布式数据库中间件,通过分库分表解决存储与处理能力问题。文章详细解析ShardingSphere核心架构,包括分片流程、策略算法,并提出分库分表前的规划设计标准。重点介绍"双集群切换"平滑迁移方案,涵盖环境准备、规则配置、实战步骤及监控方法。同时探讨迁移中的关键问题如数据一致性、业务过渡、分布式ID生成等解决方案,最后给出迁移后的运维优

qq_34478339的博客 1380

深入分库分表:从拆分方案到平滑迁移的全链路实践

分库分表是解决大数据量、高并发场景的核心方案,主要通过垂直拆分和水平拆分实现。垂直拆分按业务属性分离冷热数据,水平拆分则采用范围切分、哈希切分或混合方式分散数据压力。实施后需解决查询难题,如强制携带分片键、建立索引表或使用基因ID算法。上线迁移需经历准备、双写、灰度切换和收尾四个阶段,确保平滑过渡。核心原则是优先考虑业务适配性,保障查询效率,并通过渐进式迁移降低风险。分库分表需权衡复杂度与性能,非必要不拆分。

u013127325的博客 999

MySQL性能优化(五):分表

单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。 例如QQ,一般一个人有两个或者更多账号,整个中国QQ要有多上账号,可能有几十亿个账号 分表的关键是找到分表的标准,即根据什么值进行分表。 表名可以使用1、2、3等编号,对id去模 id%3 = 编号 插入查询都要计算出来要操作的表名 user0 user1 user2 或者其他唯一的字段,如手机号,邮箱,日...

人不风流枉少年 2万+

1448•纯粹素数

纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数。对于每一个数(无论质数合数)x,筛掉所有小于x最小质因子的质数乘以x的数。但我们知道,我们选择的那个质数必须小于那个合数的最小质因子。p3,因为p2>p1,所以这样是筛不到的。唯一会筛的是第一种:p1和p2*p3。c,s肯定小于刚才那个合数,说明肯定对于它已经筛过,然后a肯定小于s,因为s=b。p3,并且保证p1<p2<p3。我们知道,筛掉这个合数的机会有:p1和p2。c,并且a是最小的因子。

SSL_bin的博客 590

STM32实现薄膜压力传感器数据采集(标准库和HAL库实现)

薄膜压力传感器采集压力数据

XiaoCaiDaYong的博客 3万+

UVM自学笔记3——项目之三——从零开始搭建ahb_sramc验证平台

创建如下所示的目录结构: 2.在tb的文件下:顶层的testbench如下:在tb中,第24行的代码将uvm宏相关的内容include进来,第26行的代码把uvm_pkg包导入进来,然后将agent相关的包(ahb_pkg/sram_pkg),testcase相关的包(uvm_ahb_sram_test_pkg)以及env相关的包(uvm_ahb_sram_env_pkg)都导入进来,在第38行和39行将接口以virtual interface的形式配置给ahb_agent和sramc_agent下

ZhangShuHuai11的博客 9470

华中科技大学头歌 交通灯系统设计 Lojisim 详细实验报告,实验图,仅供参考

本实验也是参考了许多大神的做法,也是小白一个!有完整实验代码,实验报告,答辩PPT(ppt当时做得仓促,有点拉胯)~ 需要请评论或私QQ:3096524043(有偿~~) 一、数码管驱动 由真值表生成电路 二、四位无符号比较器设计 三、8位无符号比较器设计 四、一位2路选择器设计 五、八位2路选择器设计 六、BCD双向计数器状态机设计 七、BCD双向计数器输出函数设计 ...

FindXY的博客 1万+

从Arduino IDE到Atmel Studio:ATmega328P开发的进阶之路

本文探讨了从Arduino IDE转向Atmel Studio进行ATmega328P开发的进阶路径。通过对比两者差异,详细介绍了Atmel Studio的环境配置、寄存器操作思维、烧录方法及高级调试功能,帮助开发者突破Arduino的封装限制,实现对单片机底层硬件的精细控制与性能优化,提升嵌入式开发的专业能力。

weixin_29193259的博客 121

论文阅读:ICLR 2026 Breaking and Fixing Defenses Against Control-Flow Hijacking in Multi-Agent Systems

该论文首先系统阐述了控制流劫持攻击的核心机理。此类攻击通过操纵多智能体系统的编排机制,诱导系统执行非安全操作,进而实现敏感信息窃取。攻击者将恶意指令伪装成环境错误信息,借助可信代理传递至系统编排器,利用"困惑副手"漏洞绕过传统安全防线。该论文指出,现有防御方案如LlamaFirewall所依赖的对齐检查机制存在根本性局限——安全目标与功能需求之间存在不可调和的内在冲突。该论文的核心贡献体现在攻防两个维度。

CSPhD-winston的博客 492

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: Spring Boot使用JSR-380进行校验
下一篇: 使用注解方式实现 Redis 分布式锁
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值