当前位置: 首页 > news >正文

分库分表基因法实现策略

背景

基因法,将分片信息注入到非分片键中,让非分片键携带路由信息。比如分片键是用户id,那么订单号就加入用户id分片信息。

但是如果出现节点挂了,或者是数据倾斜以及扩容需要迁移数据等问题时,将无法解决。所以需要使用映射覆盖方案,在中间件层设置一个优先级高的本地热迁移配置。如果设置了配置,那么就强制使用配置中的路由,否则就使用id中的。

具体实现

数据结构

使用长度为1024的原子性数组。

为什么不使用map呢?因为使用数组可以直接通过下标获取到数据,性能更好。并且没有哈希碰撞。

数组下标是表的编号,存的只是库名或者是策略。

{
"type": "sub_shard",
"sub_count": 8,
"algorithm": "hash(user_id) % 8"
}

路由执行逻辑。

中间件在进行路由的时候,先去查覆盖层,发现不为空,就去执行策略,找的真正的表。

举例

订单表,一开始是按照店铺去拆分的。但是某个店铺订单量很大,所以出现了数据倾斜。那么我们可以再将这个表再拆分为很多个小表,并且把数据迁移到那些小表里面。那我们数组里面存的就是这些小表的路由策略。

数据查询

比如我们要查询某个店铺某个用户的订单,我们先通过店铺去查到订单,然后再去覆盖层找到对应的路由去查询对应的表。

但如果是想要查询某个店铺当天的订单,就只能广播查询该店铺下所有子表,再在内存里聚合。但是这样的话,性能可能就没有那么好,建议引入es 。

http://www.cnnetsun.cn/news/3071556.html

相关文章:

  • VMware NAT端口转发配置不生效?立即执行这4个诊断步骤(含PowerShell自动化检测脚本)
  • 机器学习工程真相:从监督学习到泛化误差的物理约束解构
  • 网络安全入门:高危漏洞、端口暴露与弱口令的识别与加固实战
  • AlphaTensor如何用强化学习优化矩阵乘法算法
  • AI Agent 运行时架构:会话即事件日志与生产级可靠性设计
  • Minecraft服务器包创建终极指南:3分钟快速生成完美服务器配置
  • 终极图片去重神器:如何用AntiDupl.NET快速清理电脑重复照片
  • SPT-AKI存档编辑器:离线塔科夫玩家的终极游戏体验优化神器
  • Ubuntu 24.04 LTS 上编译集成 ModSecurity 3.x 与 Nginx 的完整实战指南
  • 从工具驱动到流程驱动:Kali Linux靶机渗透测试实战思维与核心流程详解
  • 终极SRWE窗口编辑指南:如何免费打破Windows游戏和应用的分辨率限制
  • TurboQuant量化技术:16GB显卡流畅运行Qwen3.5-27B
  • WebShell应急响应实战指南:10步构建安全防线
  • 大模型稀疏激活与MoE架构原理实战解析
  • OpenAI工程师级可解释AI教学法:从调试直觉到归因闭环
  • 魔珐星云 SDK 实战:快速开发一个会共情的具身陪伴 Agent
  • 勒索病毒文件解密实战指南:原理、工具与应急响应流程
  • Kali Linux 2026 虚拟机部署指南:从零搭建渗透测试环境
  • 线性回归与正态分布:房价预测中的统计基础解析
  • Imagic:用自然语言精准编辑图像的扩散模型技术
  • Python与pytest集成Trello API实现自动化测试与RPA流程
  • Playwright浏览器上下文:实现多账号并发测试与会话隔离的Python实战
  • 用简单线性回归实现个性化体重管理
  • 大模型数据采集:从合规 sourcing 到训练就绪的七步工程
  • DeepSeek V4实测:1M上下文如何重塑AI编程工程范式
  • Mythos:首个实现自主漏洞挖掘闭环的通用AI安全模型
  • 3分钟上手OmenSuperHub:彻底告别臃肿OGH,掌控惠普OMEN笔记本性能
  • Cleanlab数据清洗原理与实战:用标签质量分数识别错误标注
  • Caffe框架深度解析:静态图、NCWH内存与嵌入式部署优势
  • 华硕笔记本性能优化革命:G-Helper如何用轻量化设计重塑硬件控制体验