首页 > 数据库 >05_greenplum定义数据库对象_分区

05_greenplum定义数据库对象_分区

时间:2022-11-01 21:25:36浏览次数:49  
标签:01 05 greenplum 默认 ALTER 分区表 TABLE 数据库 分区

一、分区

概念(提高性能)

 

1、表分区

 

2、分区示意图

 

 注:三个分区,九个子分区

 

3、数据分布&分区

 

 

4、全表扫描VS分区扫描

 注:全表扫描:会对全部segment全部数据扫描;

        分区扫描:会找到segment下的子分区,通过子分区就可以找到数据;

 

5、决定表的分区策略

 

 

6、创建分区表(优化)

注:对基表和堆表是不能创建分区的;

代码:

create table tb_cp_01(id int , date date, amt decimal(10,2)) distributed by (id)

partition by range(date)  --指定分区为date字段

(

start (date '2022-01-01') inclusive  --inclusive是包含的意思

end  (date '2023-01-01') exclusive --exclusive是不包含意思,默认也是start包含,end不包含

every (interval '1 day')  --一天产生一个分区,会产生356个分区

);

\d tb_cp_01

\d tb_cp_01_prt_10  --查看分区子表

 

(1)定义日期范围分区表

 

 

 (2)定义数字范围分区表

 

注:EVERY(1)表示以1为增量,一个一个的增加; 

 

(3)创建列表分区表

 

 注:LIST指明是列表分区

 

(4)定义多级分区表

 

 

 

 

(5)分区表的限制

  主键或者唯一约束必须包含表中的所有分区键;

 

7、装载分区表

 

 

8、验证分区策略

 

 注:分区策略如果是合适的,我们在对分区键进行查询的时候会匹配到相关的分区;

 

9、分区选择性扫描策略

 

 

10、查看分区设计

(1)通过pg_partitions视图查看分区表设计情况

 

 

 (2)如下视图也可以查看分区表的信息:

 

 

11、维护分区表

必须使用ALTER TABLE 命令从顶级表来维护分区;

(1)添加分区

  使用ALTER TABLE 命令在存在的分区表上添加新分区。

  1)原分区包含subpartition template设计:

 

注:ALTER TABLE tb_cp_05 DROP DEFAULT PARTITION;(因为已经存在默认分区了,所以需要删除默认分区,重新创建新的)

   2)原分区不包含:

 

 注:如果存在默认分区,只能从默认分区中拆分新的分区,如果有默认分区了ADD会失败;

 

12、维护分区表

(1)重命名分区·

 

   1)修改父表名称,将会影响所有分区表

 

 

 

   2)只修改分区名称

 

 注:FOR关键字会帮助我们找到对应的分区;

 

(2)删除分区

  使用ALTER TABLE 命令删除分区表中的分区。

  1)删除默认分区

 

   2)对于多级分区表,为同一层每一个分区删除默认分区

注:RANK(1)表示第一层分区;RANK(2)表示第二层分区;

 

(3)添加缺省分区

  1)使用ALTER TABLE 命令添加默认分区:

  ALTER TABLE tbcp05 ADD DEFAULT PARTITION other;

  2)如果是多级分区表,同一层每个分区都需要默认分区:

  

 

 

13、清空分区数据

(1)清空分区数据

  使用ALER TABLE 命令来清空分区:

    ALTER TABLE tpcp05 TRUNCATE PARTITION FOR (RANK(1)) ;

 

标签:01,05,greenplum,默认,ALTER,分区表,TABLE,数据库,分区
From: https://www.cnblogs.com/xiao-wang-tong-xue/p/16827412.html

相关文章

  • 数据库连接——网页查询数据(内嵌)
    在前面已经完成了数据库的连接测试,证明我们的系统环境以及eclipse的环境配置没有问题可以实现与数据库的链接,接下来我们就开始进行在网页实现一个界面来完成对数据库的增删......
  • 数据库常用语句
    https://blog.csdn.net/weixin_55972781/article/details/118399532创建表CREATETABLEtable1(materialIdTEXT,resourceTypeTEXT,localPathTEXT,remoteUrlTEX......
  • 基于maven的SSM项目连接数据库报错
    错误信息:AResourcePoolcouldnotacquirearesourcefromitsprimaryfactoryorsource背景描述:已配置好spring和springmvc,配置mybatis时出现了错误。查......
  • DM数据库安装、登录和创建用户
    DM数据库安装、登录和创建用户子安拉取镜像wget-Odm8_docker.tar-chttps://download.dameng.com/eco/dm8/dm8_20220822_rev166351_x86_rh6_64_ctm.tardockerloa......
  • SD05C是什么二极管元件?
    SD05C是什么元件?SD05C是什么类型的二极管?SD05C有什么功能作用?SD05C需要100KK,什么价格?新品研发测试阶段,SD05C能申请20个样品吗?要对下SD05C参数,方便发下产品手册吗?SD05C…… ......
  • 数据库连接池DBCP和C3P0
    数据库连接池数据库连接---执行完毕---释放连接---释放十分浪费资源池化技术:准备一些预先的资源,过来就连接预准备好的最小连接数:10最大连接数:15如果超过最大连接数,......
  • 数据库事务 脏读 幻读 不可重复读
    总结:脏读:读取事务未提交的修改之后的数据。幻读:读取事务未提交的 增删之后的数据。不可重复读:多次读取事务已经提交的数据。一、什么是数据库事务数据库事务(......
  • 怎么查小河流名称--河流数据库
    全国最大的河流名称数据库,没有你找不到的当一条河流自上而下不同河段有不同的名称时,一般以下游的河名作为整个河流的名称。当河流在地形图上没有标注名称时,可采用下列方法......
  • C++(STL):05---智能指针之unique_ptr
    一、unique_ptr类头文件:#include<memory>智能指针,是一个模板。创建智能指针时,必须提供指针所指的类型与shared_ptr的不同之处:shared_ptr所指向的对象可以有多个其他shared_p......
  • app直播源代码,报错后数据库操作回滚失败解决
    app直播源代码,报错后数据库操作回滚失败解决需抛出RuntimeException错误必须是:thrownewRuntimeException("回滚");​例如: try{  //业务逻辑}catch(Except......