博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分库分表的理想方案
阅读量:6612 次
发布时间:2019-06-24

本文共 494 字,大约阅读时间需要 1 分钟。

分库分表的理想方案:

  • 均匀分布数据,避免热点问题;
  • 对达到上限的节点保证不再写入数据;
  • 可以自由扩容;
  • 不迁移数据。

部分Shading方案缺点分析:

  • 基于散列的路由能均匀地分布数据,但却需要数据迁移,同时也无法避免对达到上限的节点不再写入新数据;
  • 基于增量区间的路由天然不存在数据迁移和向某一节点无上限写入数据的问题,但却存在“热点”困扰;
  • 结合数据库维护一个Sequence表,这样Sequence表本身可能会成为一个性能瓶颈。

我们设计方案的初衷就是希望能结合两种路由规则的优势,摒弃各自的劣势,创造出一种接近“理想”状态的扩容方式,而这种方式简单概括起来如下:

全局:按增量区间分布数据,使用增量扩容,无数据迁移;

局部:使用散列方式分散数据读写,解决“热点”问题,同时对Sharding拓扑结构进行建模,使用一致的路由算法,扩容时只需追加节点数据,不再修改散列逻辑代码

 

垂直切分:把关系密切的表分到一个partition,如果同一个partition里的表数据量很大且增长迅猛,再进行水平切分。

水平切分:将一张表的数据按增量区间或散列方式分散到多个Shard上存储。

 

参考:

 

转载地址:http://quaso.baihongyu.com/

你可能感兴趣的文章
本周作业
查看>>
Linux下解决命令未找到的问题
查看>>
为什么要有预发布环境
查看>>
battery-historian结果分析
查看>>
使用远程接口库进一步扩展Robot Framework的测试能力
查看>>
如何通过倾斜摄影数据手动配置s3c索引文件?
查看>>
JS 正则表达式去除字符串的前后空格字符
查看>>
1026. Table Tennis (30)
查看>>
XMLHttpRequest.status状态码
查看>>
提示错误 Call to undefined function imagepng() in …
查看>>
如何创建指定大小的数组/字符串
查看>>
参考MSDN学习《迭代器》
查看>>
查询端口占用
查看>>
字符编码06
查看>>
django之表单及模板渲染、全局钩子、局部钩子函数-67
查看>>
SQL总结(二)连表查询
查看>>
【转载】FPGA功耗的那些事儿
查看>>
delphi 获取可执行文件的当前路径
查看>>
求圆的面积
查看>>
自定义控件
查看>>