每日一博 | 数据库系统设计:分区
摘要:对大数据集或非常高吞吐量,仅复制还不够,还需将数据拆分成为分区,也称分片。 本文分享自华为云社区《系统设计之分区策略》,作者:JavaEdge。 对大数据集或非常高吞吐量,仅复制还不够,还需将数据拆分成为分区(partitions),也称分片(sharding)[^i]。 [^i]: 分区是一种有意将大型数据库分解成小型数据库的方式。它与网络分区(network partitions, netsplits)无关,这是节点之间网络故障的一种。后文再讨论这些错误。 术语澄清 分区 (partition),对应MongoDB、ES中的shard,HBase 的Region,Bigtable的tablet,Cassandra的vnode,Couchbase的vBucket。但分区 (partitioning)是最普遍的。 定义 每条数据(或每条记录,每行或每个文档)属于且仅属于某特定分区。每个分区都能视为一个完整小型数据库,虽然数据库可能存在跨分区操作。 目的 提高可扩展性。不同分区可放在一个无共享集群的不同节点。这样的一个大数据集可分散在更多磁盘,查询负载也随之分布到更多处理器。 单分...
