分片(Sharding)
缩写:无
简述
按分片键把数据水平拆到多个节点,使容量与部分负载可横向扩展。代价是跨片查询、事务与运维复杂度上升。
为何出现
单机存储与写吞吐不够,垂直升级触顶。
使用场景
超大用户/订单表、多租户按租户拆分、写入热点分散。
在体系中的位置
应用或中间件路由 → 多 DBMS 实例;元数据记录片拓扑。
实践与应用
• 分片键选高频点查且避免热点(如顺序用户 ID 取模可能集中)。
• 尽量避免跨片事务与跨片 JOIN。
• 预留扩容再均衡策略。
注意事项
• 错误分片键导致全局二次索引或广播查询。
• 唯一约束常退化为片内唯一。
对比与易混
分片 vs 分区(常同实例内);vs 只读副本。
信号与度量
片间倾斜、跨片比例、扩容迁移耗时。
关联术语
• 分区:库内拆分对照(用词因产品而异)
• 中间件:路由常落地处
• 跨片事务:难点