searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

分布式关系型数据库的分片算法

2024-11-08 09:21:26
18
0

TELEDB 分布式关系型数据库(简称DRDS)预置了若干种分片算法供库表分片时使用。

取模分片

定义

  • 对分片键(整数)进行十进制求模,根据模值对应到不同分片。
  • 适用条件:分片键必须是整数,分片键求余后的值均匀分布。

特点

  • 分片键为自增型或随机分布的整数时能保证数据的均匀分片。
  • 算法简单,性能高。
  • 对多值、范围的查询支持较差(分散在不同的分片上)。
  • 扩容时需要数据迁移。
  • 较好的分散由时间、机构、id峰值带来的数据热点问题。

字符串HashCode取模分片

定义

  • 字符串HashCode求模解析(PartitionByStringMod),对分片字段的值进行hashcode()计算并取其绝对值,然后根据配置的分片数量求模得到最终的分片。

特点

  • 数据分布较不均匀。
  • 如果hash算法较差,hash结果存在一定的几率发生碰撞,绝对值计算增加了碰撞的概率。
  • 其余特点同取模分片。

枚举分片

定义

  • 根据配置文件中枚举的具体值(允许非数值)与分片号的对应关系和分片字段的值进行分片,当未找到对应分片时,进入到设定的默认分片。

特点

  • 数据分布的均匀度取决于枚举值对应的记录是否分布均匀。
  • 较好的支持多值、范围的查询。
  • 易于扩容,正常情况下无需数据迁移。

时间范围分片

定义

  • 按照时间范围进行分片,超过分片数量后从第一个分片再次循环分片。

特点

  • 适用日志数据等按时间范围进行存储的数据。

枚举分组取模分片

定义

  • 枚举+取模的组合分片方式,包含枚举键和取模键两个分片键,先通过枚举键将数据分配到不同的分组,再在分组里通过取模键对应到具体的分片。
  • 适用条件: 枚举键可以是整数也可以是字符串,取模键必须是整数,取模键求余后的值均匀分布。如: 数据库的数据需要按区域进行隔离,但隔离后的数据量依然巨大需要按取模方式进行再次分片,可以选择此算法。

特点

  • 支持枚举键和取模键结合进行二次分片。
  • 取模键为自增型或随机分布的整数时能保证数据的均匀分片。
  • 算法简单,性能高。
  • 对多值、范围的查询支持较差(分散在不同的分片上)。
  • 扩容时需要数据迁移。
  • 较好的分散一些时间、机构、id峰值带来的数据热点问题。

枚举分组字符串HashCode取模分片

定义

  • 枚举+字符串HashCode取模的组合分片方式,包含枚举键和取模键两个分片键,先通过枚举键将数据分配到不同的分组,再在分组里通过取模键对应到具体的分片。
  • 适用条件:枚举键可以是整数也可以是字符串,取模键是字符串,取模键字符串HashCode求余后的值均匀分布。如: 数据库的数据需要按区域进行隔离,但隔离后的数据量依然巨大需要按取模方式进行再次分片,可以选择此算法。

特点

  • 支持枚举键和字符串HashCode取模键结合进行二次分片。
  • 算法简单,性能高。
  • 对多值、范围的查询支持较差(分散在不同的分片上)。
  • 扩容时需要数据迁移。
  • 较好的分散一些时间、机构、id峰值带来的数据热点问题。
0条评论
0 / 1000
孔****琪
1文章数
0粉丝数
孔****琪
1 文章 | 0 粉丝
孔****琪
1文章数
0粉丝数
孔****琪
1 文章 | 0 粉丝
原创

分布式关系型数据库的分片算法

2024-11-08 09:21:26
18
0

TELEDB 分布式关系型数据库(简称DRDS)预置了若干种分片算法供库表分片时使用。

取模分片

定义

  • 对分片键(整数)进行十进制求模,根据模值对应到不同分片。
  • 适用条件:分片键必须是整数,分片键求余后的值均匀分布。

特点

  • 分片键为自增型或随机分布的整数时能保证数据的均匀分片。
  • 算法简单,性能高。
  • 对多值、范围的查询支持较差(分散在不同的分片上)。
  • 扩容时需要数据迁移。
  • 较好的分散由时间、机构、id峰值带来的数据热点问题。

字符串HashCode取模分片

定义

  • 字符串HashCode求模解析(PartitionByStringMod),对分片字段的值进行hashcode()计算并取其绝对值,然后根据配置的分片数量求模得到最终的分片。

特点

  • 数据分布较不均匀。
  • 如果hash算法较差,hash结果存在一定的几率发生碰撞,绝对值计算增加了碰撞的概率。
  • 其余特点同取模分片。

枚举分片

定义

  • 根据配置文件中枚举的具体值(允许非数值)与分片号的对应关系和分片字段的值进行分片,当未找到对应分片时,进入到设定的默认分片。

特点

  • 数据分布的均匀度取决于枚举值对应的记录是否分布均匀。
  • 较好的支持多值、范围的查询。
  • 易于扩容,正常情况下无需数据迁移。

时间范围分片

定义

  • 按照时间范围进行分片,超过分片数量后从第一个分片再次循环分片。

特点

  • 适用日志数据等按时间范围进行存储的数据。

枚举分组取模分片

定义

  • 枚举+取模的组合分片方式,包含枚举键和取模键两个分片键,先通过枚举键将数据分配到不同的分组,再在分组里通过取模键对应到具体的分片。
  • 适用条件: 枚举键可以是整数也可以是字符串,取模键必须是整数,取模键求余后的值均匀分布。如: 数据库的数据需要按区域进行隔离,但隔离后的数据量依然巨大需要按取模方式进行再次分片,可以选择此算法。

特点

  • 支持枚举键和取模键结合进行二次分片。
  • 取模键为自增型或随机分布的整数时能保证数据的均匀分片。
  • 算法简单,性能高。
  • 对多值、范围的查询支持较差(分散在不同的分片上)。
  • 扩容时需要数据迁移。
  • 较好的分散一些时间、机构、id峰值带来的数据热点问题。

枚举分组字符串HashCode取模分片

定义

  • 枚举+字符串HashCode取模的组合分片方式,包含枚举键和取模键两个分片键,先通过枚举键将数据分配到不同的分组,再在分组里通过取模键对应到具体的分片。
  • 适用条件:枚举键可以是整数也可以是字符串,取模键是字符串,取模键字符串HashCode求余后的值均匀分布。如: 数据库的数据需要按区域进行隔离,但隔离后的数据量依然巨大需要按取模方式进行再次分片,可以选择此算法。

特点

  • 支持枚举键和字符串HashCode取模键结合进行二次分片。
  • 算法简单,性能高。
  • 对多值、范围的查询支持较差(分散在不同的分片上)。
  • 扩容时需要数据迁移。
  • 较好的分散一些时间、机构、id峰值带来的数据热点问题。
文章来自个人专栏
分布式关系型数据库产品介绍
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0