分片算法

哈希分片

  • 原理 :-> 对指定的键(如 id)进行哈希运算,再根据 哈希值对存储节点数量取模,所得余数对应 数据应存放的表或节点

  • 适用数据 :-> 数据分布较为均匀,无明显的顺序性或时 间相关性;数据之间的关联性较弱,每个 数据可独立读写
    范围分片

  • 原理 :-> 按照特定的范围区间(如时间区间、 ID 区 间等)来划分数据,将满足某一范围条件的 数据存放在一起

  • 适用数据 :-> 具有明显的顺序特征,如按时间先后产生、 按编号顺序排列;数据在某个维度上呈现 出可划分的区间特性
    地理位置分片

  • 原理 :-> 依据地理位置信息(如城市、地域等)来分 配数据,将同一地理位置相关的数据存储在 同一位置或相关联的存储单元中

  • 适用数据 :-> 数据与地理位置紧密相关,不同地理位置 的数据使用场景、访问频率等有差异
    融合算法

  • 原理 :-> 灵活组合多种分片算法,结合不同算法的优 势来分配数据

  • 适用数据 :-> 数据特点多样,可能同时具有随机读写、 范围查询需求,或兼具多种维度的关联特 性
    分片算法

原理

适用数据

取模算法

  • 原理 :-> 对数据的某个键值进行哈希运算,将 哈希值对分片数量取模,所得结果作为数 据存储的分片索引

  • 适用数据 :-> 适合随机访问的数据, 数据分布期望 均匀的场景,例如用户 ID、订单 ID 等主键 数据
    范围算法

  • 原理 :-> 按数据的某个字段(如时间、数值等) 的范围划分分片

  • 适用数据 :-> 有范围查询需求的数据, 例如按时间 范围统计的日志数据、按数值区间划分的 业务数据等
    列表算法

  • 原理 :-> 列举数据某个字段的取值,指定每个 取值对应的分片

  • 适用数据 :-> 业务场景中取值范围固定且明确的数 据,例如地区、部门等有明确分类的数据
    一致性哈希 算法

  • 原理 :-> 将数据键值和节点通过哈希函数映 射到固定哈希环上,数据从其哈希值位置顺时针找第一个节点存储;节点增减时, 只影响相邻部分数据

  • 适用数据 :-> 分布式系统中节点需要动态调整的数 据, 例如缓存数据、 分布式存储中的对象 数据等

作者

Ryen Xiang

发布于

2026-01-31

更新于

2025-10-23

许可协议


网络回响

评论