尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

分库分表问题

分库分表问题
📅 发布时间:2026/6/19 5:54:26

View Post

分库分表问题

 

分库分表步骤

一、容量估算评估分库、分表个数

  • 容量估算依据2点:现有数据、增长趋势,照着业务规划预估容量

二、选key(均匀)

  • 数据量均匀
  • 请求量均匀

三、分表规则(分库分表分片键的设计)

  • range、hash、一致性hash、snowflake分片

四、执行(一般双写)

五、扩容问题(尽量减少数据移动)

 

分库分表问题

一、非partition key查询

基于水平分库分表,拆分策略为常用的hash法。

除了partition key,只有一个非partition key 作为条件查询

  • 映射法
  • 基因法
  • 冗余法

二、非partition key跨库跨表分页查询问题

用NoSQL法解决(ES等)

三、跨节点聚合

四、跨节点join

五、扩容问题

六、分布式事务

2pc、3pc 对性能损耗大,可改用事务补偿机制。

 

水平扩容库,升级从库法

双倍扩容策略,减少数据迁移。无需停止应用服务器

有 2 个节点 A、B,双倍扩容至4 个节点

1)新增两个数据库 A2、B2 作为从库,设置主从同步关系:A=>A2、B=>B2,主从数据同步

2)调整分片规则

  • 原 id%2=0 => A 改为 id %4=0 => A,id%4=2 => A2
  • 原 id%2=1 => B 改为  id %4=1 => B,   id%4=3 => B2

3)解除主从同步关系

四个节点的数据都已完整,只是有冗余(多存了和自己配对的节点的那部分数据),择机清除。

 

2的幂和数据迁移

容量规划按照2的幂来规划的,扩容的时候,也按照2的幂进行的

基本扩容都选择容量翻倍

2的特性,哈希取余,可以使用位运算来计算余数,高效。

扩容为原来的2倍,只需要迁移一半的数据。

 

 

100亿数据迁移执行流程

大概有10个步骤:

1、 环境准备:线上库配置完成

2、 全量同步:数据迁移工具上新建2张表(积分表、明细表)的全量任务

3、 增量同步:全量迁移完成后开启增量(自动回溯全量开始时间,消息多次消费会进行幂等)

4、 数据校验:全量数据校验,查看数据是否一致

5、 切流测试:改造代码预发测试(采集线上流量进行回放,多种case跑一下,切流开关等校验),没问题发布上线

6、 二次校验:再次全量进行校验&订正(数据追平)

7、 开启双写:打开双写(保证数据实时性)既写老库,又写新库

8、 开启读灰度:低峰时段,进行灰度切流userId%x,进行验证,逐步流量打开,持续观察

9、 只写新库:写流量切到新库,只写新库,不写老库。完成数据迁移方案

10、 迁移完成:系统稳定运行一段时间,迁移&双写代码下线,老库进行资源释放

 
 
 

分库分表如何容量预估,怎么计算需要多少个库多少个表?

 
 
 
 

相关新闻

  • 数据采集作业3 102302111 海米沙
  • L2-027 名人堂与代金券
  • 数字人平台指南:聚焦四大关键维度,破解选型难题

最新新闻

  • 如何构建高效的股票智能分析系统:自动化部署与配置指南
  • DeepSeek V4双模架构解析:1M上下文与OPD训练的工程化落地
  • 2026目前最好的数字展厅全彩屏厂家怎么选 - 品牌排行榜
  • 98. 从单核到集群:如何评估与规划服务的QPS承载能力
  • 2026年苏州专攻离婚房产分割的律师选择参考 - 品牌排行榜
  • DeepSeek-V4高效长上下文推理技术解析

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号