水平分片(Horizontal Sharding)是数据库分片技术的核心形式,通过将数据按行分割到多个物理节点中,实现分布式存储与查询优化。以下为关键要点:
🧠 基本概念
水平分片将表按行切分,每个分片包含原始表的子集。例如:
- 用户表按用户ID哈希分片,不同ID分配到不同节点
- 日志表按时间范围分片,如2023年数据存一份,2024年存另一份
📊 数据分布示意图
🛠️ 实现方式
哈希分片
通过哈希函数将数据均匀分配到不同节点
✅ 优点:负载均衡
❗ 缺点:范围查询效率低范围分片
按数据范围划分,如按时间或数值区间
✅ 优点:支持范围查询
❗ 缺点:数据倾斜风险列表分片
按特定字段值(如用户区域)分配
✅ 优点:简单直观
❗ 缺点:扩展性差
🔗 扩展阅读:数据库分片技术全解析
📌 应用场景
- 大数据量表:如用户信息表、订单表
- 高并发读写:分散请求压力
- 地域分布:按用户地理位置分片
💡 示例:电商平台的订单表可按用户ID哈希分片,提升查询效率
⚠️ 注意事项
- 需要维护分片规则一致性
- 考虑分片键选择对查询性能的影响
- 垂直分片(Vertical Sharding)与水平分片可结合使用
📊 分片键选择对比
如需深入理解水平分片的代码实现,可参考水平分片实战案例。