YMatrix 数据分布策略

YMatrix 支持三种核心数据分布策略,决定数据在集群节点间的存储方式,直接影响查询性能与集群稳定性:

分布策略一表速览

分布方式 适用场景 优点 缺点
HASH 分布 根据分布键做等值连接操作的大表 相同值的数据都在相同节点上,便于做等值连接 如果数据本身值的随机性较差,可能会造成倾斜
随机分布 不需要做连接,并且没有合适分布键的大表 数据分布均匀性更好,不容易出现倾斜 数据分布无规律,优化器无法根据数据分布规律做优化
复制分布 不经常改动,且经常做连接、需要索引的小表 每个节点都有数据副本 需要占用更多空间

哈希分布(HASH)

工作原理

  • 创建表时指定 1 个或多个字段作为分布键;
  • 插入数据时,系统根据分布键值计算哈希值,将数据映射到对应的 Segment 节点;
  • NULL 值会被正常哈希映射到特定 Segment,保证数据分布规则统一。

核心优势

  • 数据分布均匀:高基数分布键可避免单个节点数据过多导致的热点问题;
  • 查询性能优异:等值查询(WHERE column = value)可直接定位目标节点,无需跨节点扫描;
  • JOIN 效率高:多表关联时,若关联字段为相同分布键,可减少节点间数据交换,提升关联速度。

适用场景

  • 大部分业务表(实体表、事实表),尤其是查询频繁、数据量大的表;
  • 需频繁进行等值查询或多表 JOIN 的场景(如财务系统、电商订单系统);
  • 有明确核心查询维度(高基数字段)的表。

随机分布(RANDOM)

工作原理

  • 插入数据时,系统随机将数据分配到集群的各个 Segment 节点;
  • 无需指定分布键,系统自动保证数据在节点间平均分布。

    核心优势

  • 数据分布完全均匀,无热点节点;
  • 配置简单,无需额外设计分布键。

    适用场景

  • ETL 临时表、中间过程表;
  • 测试表、数据量小且查询频率低的表;
  • 无明确查询维度、无需多表关联的表。

    注意事项

  • 表间 JOIN 需进行全节点数据交换,性能较低,不适合核心业务表。

复制分布(REPLICATED)

工作原理

  • 表的完整数据在集群每个 Segment 节点上都存储一份副本;
  • 查询时可直接从本地节点读取数据,无需跨节点请求。

    核心优势

  • 单节点查询性能极高:无需数据移动,响应速度快;

    适用场景

  • 小表(数据量 < 100MB):如维度表、代码表、配置表;
  • 频繁查询且数据量小的表(如科目表、用户角色表);
  • 需与大量表关联的维度表(如 GIS 基础信息表)。

    注意事项

  • 存储空间占用大:数据冗余量与节点数成正比;
  • 写入性能较低:需同步更新所有节点的副本数据,不适合写入频繁的表。