分布式数据库30讲
王磊
光大银行首席数据架构师
新⼈⾸单¥19.9
2066 人已学习
课程目录
已更新 7 讲 / 共 33 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词|为什么要学习分布式数据库?
免费
基础篇 (6讲)
01|什么是分布式数据库?
02|强一致性:那么多数据一致性模型,究竟有啥不一样?
03|强一致性:别再用BASE做借口,来看看什么是真正的事务一致性
04 | 架构风格:NewSQL和PGXC到底有啥不一样?
05 | 全局时钟:物理时钟和逻辑时钟你Pick谁?
06 | 分片机制:为什么说Range是更好的分片策略?
分布式数据库30讲
15
15
1.0x
00:00/00:00
登录|注册

06 | 分片机制:为什么说Range是更好的分片策略?

王磊 2020-08-21
你好,我是王磊,你也可以叫我 Ivan。
在这一讲的开头,我想请你思考一个问题,你觉得在大规模的业务应用下,单体数据库遇到的主要问题是什么?对,首先就是写入性能不足,这个我们在第 4 讲也说过,另外还有存储方面的限制。而分片就是解决性能和存储这两个问题的关键设计,甚至不仅是分布式数据库,在所有分布式存储系统中,分片这种设计都是广泛存在的。
所以今天,就让我们好好了解一下,分片到底是怎么回事儿。

什么是分片

分片在不同系统中有各自的别名,Spanner 和 YugabyteDB 中被称为 Tablet,在 HBase 和 TiDB 中被称为 Region,在 CockraochDB 中被称为 Range。无论叫什么,概念都是一样的,分片是一种水平切分数据表的方式,它是数据记录的集合,也是数据表的组成单位。
分布式数据库的分片与单体数据库的分区非常相似,区别在于:分区虽然可以将数据表按照策略切分成多个数据文件,但这些文件仍然存储在单节点上;而分片则可以进一步根据特定规则将切分好的文件分布到多个节点上,从而实现更强大的存储和计算能力。
分片机制通常有两点值得关注:
分片策略
主要有 Hash(哈希)和 Range(范围)两种。你可能还听到过 Key 和 List,其实 Key 和 List 可以看作是 Hash 和 Range 的特殊情况,因为机制类似,我们这里就不再细分了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式数据库30讲》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥19.9
立即订阅
登录 后留言

精选留言(5)

  • 开心哥
    元数据搞个etcd存起来如何?
    2020-08-21
    1
  • 扩散性百万咸面包
    Hash 分片写性能出众,但查询性能差,Range 则相反。

    没懂这一句话,文章中哪里有详细阐释为什么Hash分片的写性能更好呢?为什么Range的写性能就不行呢?
    2020-08-22
  • 真名不叫黄金
    记忆中TiDB中好像是将元数据存在PD,而PD本身又可部署为多副本高可用的。
    Spanner如何做的就不太清楚
    2020-08-22
  • 游弋云端
    元数据集中存储,特别是能用全内存性能最好,但可靠性不足,一般做HA;或者元数据可以做一致性Hash来分片打散,个人认为Range不适合元数据,变化了数据位置不好计算。
    2020-08-21
  • es的,ceph的分片机制也是类似,ceph有自动rebalance,es貌似要手动
    2020-08-21
收起评论
5
返回
顶部