GBase 8a
性能调优
文章
建表时选择数据分布策略(HASH / RANDOM / 复制表)
发表于2026-06-30 15:30:469次浏览0个评论
功能讲解
GBase 8a 是分布式数据库,建表时必须考虑数据如何分散到各节点。共有三种方式:
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 的列,且唯一值要多(别用"性别"这种只有几个值的列,否则数据全挤到少数节点上,造成数据倾斜)。
评论
登录后才可以发表评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526