ITPub博客

首页 > 数据库 > 国内数据库 > GBase 8a数据库建表时选择数据分布策略解析

GBase 8a数据库建表时选择数据分布策略解析

原创 国内数据库 作者:GBASE南大通用 时间:2026-07-10 14:23:42 0 删除 编辑

文章配图-1

南大通用GBase 8a数据库(gbase database)是分布式数据库,建表时必须考虑数据如何分散到各节点。可选择三种方式:

  • HASH 分布:按某列哈希值分发,适合大表,JOIN 时能本地执行,性能最好;
  • RANDOM 分布:随机分发(默认),适合无明确关联条件的表;
  • 复制表:每个节点都存完整数据,适合小字典表。

使用示例

-- 1. HASH 分布表(推荐大表使用,以 user_id 为分布键)
CREATE TABLE orders (
order_id BIGINT,
user_id BIGINT,
amount DECIMAL(10,2),
order_date DATE
) DISTRIBUTED BY('user_id');





-- 2. 随机分布表(默认,不写 DISTRIBUTED BY 即可)
CREATE TABLE log_tmp (
log_id INT,
msg VARCHAR(500)
);



-- 3. 复制表(每个节点保留全量数据,适合小维度表)
CREATE TABLE dim_city (
city_id INT,
city_name VARCHAR(50)
) REPLICATED;



避坑提示

分布键不能 UPDATE!选择分布键时优先选经常用于 JOIN 或 GROUP BY 的列,且唯一值要多(别用"性别"这种只有几个值的列,否则数据全挤到少数节点上,造成数据倾斜)。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69979120/viewspace-3175628/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
GBASE南大通用,致力于成为用户最信赖的数据库产品供应商!

注册时间:2020-07-16

  • 博文量
    1316
  • 访问量
    1295754