GreenPlum改变表的分布策略

创建一张表,在没有primary key 或者 unique key 的情况下,GreenPlum默认会把第一个column作为分布键

  1. zwcdb=# create table tab01(id int,name varchar(20));  
  2. NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'id' as the Greenplum Database data distribution key for this table.  
  3. HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.  
  4. CREATE TABLE  
  5. zwcdb=#   
  6. zwcdb=# \d+ tab01  
  7.                         Table "public.tab01"  
  8.  Column |         Type          | Modifiers | Storage  | Description   
  9. --------+-----------------------+-----------+----------+-------------  
  10.  id     | integer               |           | plain    |   
  11.  name   | character varying(20) |           | extended |   
  12. Has OIDs: no  
  13. Distributed by: (id)  

使用以下语句修改分布键

  1. zwcdb=# alter table tab01 set distributed by(name);  
  2. ALTER TABLE  
  3. zwcdb=# \d+ tab01  
  4.                         Table "public.tab01"  
  5.  Column |         Type          | Modifiers | Storage  | Description   
  6. --------+-----------------------+-----------+----------+-------------  
  7.  id     | integer               |           | plain    |   
  8.  name   | character varying(20) |           | extended |   
  9. Has OIDs: no  
  10. Distributed by: (name)  


在不确定哪个column为分布键的情况下可以使用randomly策略

  1. zwcdb=# alter table tab01 set distributed randomly;  
  2. ALTER TABLE  
  3. zwcdb=# alter table tab01 set with(reorganize=true);  
  4. ALTER TABLE  
  5. zwcdb=# \d+ tab01  
  6.                         Table "public.tab01"  
  7.  Column |         Type          | Modifiers | Storage  | Description   
  8. --------+-----------------------+-----------+----------+-------------  
  9.  id     | integer               |           | plain    |   
  10.  name   | character varying(20) |           | extended |   
  11. Has OIDs: no  
  12. Distributed randomly  
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值