检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
分区策略 分区策略在使用DDL语句建表语句时通过PARTITION BY语句的语法指定,分区策略描述了在分区表中数据和分区路由映射规则。常见的分区类型有基于条件的Range分区、基于哈希散列函数的Hash分区、基于数据枚举的List列表分区: CREATE TABLE table_name
分区策略 分区策略在使用DDL语句建表语句时通过PARTITION BY语句的语法指定,分区策略描述了在分区表中数据和分区路由映射规则。常见的分区类型有基于条件的Range分区/Interval分区、基于哈希散列函数的Hash分区、基于数据枚举的List列表分区: CREATE TABLE
分区表对导入操作的性能影响 在GaussDB内核实现中,分区表数据插入的处理过程相比非分区表增加分区路由部分的开销,因从整体上分区表场景的数据插入开销主要看成:(1)heap-insert基表插入;(2)partition-routing分区路由两个部分。其中heap基表插入解决
PBE动态剪枝 PBE动态剪枝支持范围如下所示: 支持分区级别:一级分区、二级分区。 支持分区类型:范围分区、间隔分区、哈希分区、列表分区。 支持表达式类型:比较表达式(<,<=,=,>=,>)、逻辑表达式、数组表达式。 支持部分类型转换和函数:对于类型可以相互转换的场景和immutable函数可以支持PBE动态剪枝
向范围分区表新增分区 使用ALTER TABLE ADD PARTITION可以将分区添加到现有分区表的最后面,新增分区的上界值必须大于当前最后一个分区的上界值。 例如,对范围分区表range_sales新增一个分区。 ALTER TABLE range_sales ADD PARTITION
PBE动态剪枝 PBE动态剪枝支持范围如下所示: 支持分区级别:一级分区、二级分区。 支持分区类型:范围分区、间隔分区、哈希分区、列表分区。 支持表达式类型:比较表达式(<,<=,=,>=,>)、逻辑表达式、数组表达式。 支持部分隐式类型转换和函数:对于类型可以相互转换的场景和i
分区表静态剪枝 对于检索条件中分区键上带有常数的分区表查询语句,在优化器阶段将对indexscan、bitmap indexscan、indexonlyscan等算子中包含的检索条件作为剪枝条件,完成分区的筛选。算子包含的检索条件中需要至少包含一个分区键字段,对于含有多个分区键的分区表,包含任意分区键子集即可。
分区表静态剪枝 对于检索条件中分区键上带有常数的分区表查询语句,在优化器阶段将对indexscan、bitmap indexscan、indexonlyscan等算子中包含的检索条件作为剪枝条件,完成分区的筛选。算子包含的检索条件中需要至少包含一个分区键字段,对于含有多个分区键的分区表,包含任意分区键子集即可。
分区表动态剪枝 对于检索条件中存在带有变量的分区表查询语句,由于优化器阶段无法获取用户的绑定参数,因此优化器阶段仅能完成indexscan、bitmapindexscan、indexonlyscan等算子检索条件的解析,后续会在执行器阶段获得绑定参数后,完成分区筛选。算子包含的检
分区表静态剪枝 对于检索条件中分区键上带有常数的分区表查询语句,在优化器阶段将对indexscan、bitmap indexscan、indexonlyscan等算子中包含的检索条件作为剪枝条件,完成分区的筛选。算子包含的检索条件中需要至少包含一个分区键字段,对于含有多个分区键的分区表,包含任意分区键子集即可。
分区(分区子表、子分区) 分区表中实际保存数据的表,对应的entry通常保存在pg_partition中,各个子分区的parentid作为外键关联其分区母表在pg_class表中的OID列。 示例:t1_hash为一个一级分区表: gaussdb=# CREATE TABLE t1_hash
向二级分区表新增二级分区 使用ALTER TABLE MODIFY PARTITION ADD SUBPARTITION可以在二级分区表中新增一个二级分区,这个行为可以作用在二级分区策略为RANGE或者LIST的情况。 例如,对二级分区表range_list_sales的date_202004新增一个二级分区。
对二级分区表清空一级分区 使用ALTER TABLE TRUNCATE PARTITION可以清空二级分区表的一个一级分区,数据库会将这个一级分区下的所有二级分区都进行清空。 例如,通过指定分区名清空二级分区表range_list_sales的一级分区date_202005,并更新Global索引。
基本概念 分区表(母表) 分区(分区子表、子分区) 分区键 父主题: 分区表介绍
分区剪枝 分区表静态剪枝 分区表动态剪枝 父主题: 分区表查询优化
分区级统计信息 指定单分区统计信息收集 当前分区表支持指定单分区统计信息收集,已收集统计信息的分区会在再次收集时自动更新维护。该功能适用于列表分区、哈希分区和范围分区。 gaussdb=# CREATE TABLE only_fisrt_part(id int,name varchar)PARTITION
分区表相关系统视图 分区表系统视图根据权限分为3类,具体字段信息请参考《开发指南》中“系统表和系统视图 > 系统视图”章节。 所有分区视图: ADM_PART_TABLES:所有分区表信息。 ADM_TAB_PARTITIONS:所有分区信息。 ADM_PART_INDEXES:所有Local索引信息。
分区表相关内置工具函数 前置建表相关信息 前置建表: CREATE TABLE test_range_pt (a INT, b INT, c INT) PARTITION BY RANGE (a) ( PARTITION p1 VALUES LESS THAN (2000)
对二级分区表重命名二级分区 使用ALTER TABLE RENAME SUBPARTITION可以对二级分区表重命名二级分区。 例如,通过指定分区名将二级分区表range_list_sales的分区date_202001_channel1重命名。 ALTER TABLE range_list_sales
分区表相关系统视图 分区表系统视图根据权限分为3类,具体字段信息请参考《开发指南》中“系统表和系统视图 > 系统视图”章节。 所有分区视图: ADM_PART_TABLES:所有分区表信息。 ADM_TAB_PARTITIONS:所有一级分区信息。 ADM_TAB_SUBPARTITIONS:所有二级分区信息。