加载中...
分片模式是一种水平扩展数据存储的设计模式。它按某种分片键把大数据集切分为多个较小、相互独立的分片,分布到不同的存储节点上,从而突破单机容量与吞吐上限,让存储能随节点数量近乎线性地扩展。

| 类型 | 数据扩展模式 |
| 核心思想 | 水平拆分数据 |
| 扩展方向 | 横向扩展 |
| 常见策略 | 范围、哈希、一致性哈希 |
| 相关架构 | 无共享架构 |
分片模式(Sharding Pattern)是一种数据水平拆分的设计模式,通过将一个庞大的数据集按照分片键划分为若干个更小的、彼此独立的数据子集(分片),并把它们分散存放到多个物理节点上,以实现存储容量和读写吞吐的横向扩展。
当单个数据库实例在数据量、存储空间或请求压力上触及瓶颈时,纵向升级硬件(垂直扩展)成本高且有上限。分片采用横向扩展思路:把数据切成多份分摊到多台机器,每台只处理自己那一份,从而使整体容量和吞吐随节点增加而提升。它是无共享架构在数据层的体现。
分片的关键在于选择合适的分片键与分片策略:
分片广泛用于海量数据的关系型数据库、NoSQL 存储和搜索引擎中,例如用户按 ID 分库分表、时序数据按时间分片等。它是支撑大规模互联网服务数据层的核心手段,常与副本、路由层配合以兼顾扩展性与可用性。
问:分片后跨分片查询怎么办?答:跨分片的联表和聚合会变复杂,通常需要在应用层或中间件层做分发与汇总,因此设计时应尽量让高频查询落在单个分片内。
问:分片键选错了能改吗?答:分片键一旦选定很难更改,重新分片往往意味着大规模数据迁移。因此需在设计初期结合查询模式和数据分布慎重选择,避免热点和倾斜。

| 类型 | 数据扩展模式 |
| 核心思想 | 水平拆分数据 |
| 扩展方向 | 横向扩展 |
| 常见策略 | 范围、哈希、一致性哈希 |
| 相关架构 | 无共享架构 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧