暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

手动创建分区表(AUTO模式)1

酷数据库 2023-11-23
137

注意事项

  • 使用分区表语法之前,请务必确认创建当前的逻辑库时模式指定为自动分区模式(mode='auto' ),非自动分区模式不允许使用分区表的建表语法。您也可以通过SHOW CREATE DATBASE db_name语法查看当前逻辑库的建表模式。示例如下:


    CREATE DATABASE part_db mode='auto';
    Query OK, 1 row affected (4.29 sec)
    
    SHOW CREATE DATABASE part_db;
    +----------+-----------------------------------------------+
    | DATABASE | CREATE DATABASE                               |
    +----------+-----------------------------------------------+
    | part_db  | CREATE DATABASE `part_db` /* MODE = 'auto' */ |
    +----------+-----------------------------------------------+
    1 row in set (0.18 sec)

    创建数据库的语法详情,请参见CREATE DATABASE

  • 如果分区表的主键不含分区键, 且不是自增主键,需要业务保证主键的唯一性。

  • 若创建表时要使用二级分区的相关功能,实例版本必须为5.4.17-16952556及以上

分区类型介绍

一级分区

PolarDB-X的一级分区支持三大类型6种分区策略(Hash/Key/RangeColumns/Range/List/List Columns):

  • Hash类型:基于用户指定的分区列或分区函数表达式的值,使用内置的一致性哈希算法计算其哈希值并进行分区路由的策略。按哈希路由算法以及使用方式的不同,Hash类型分为Key分区Hash分区两种分区策略。

  • Range类型:基于用户指定的分区列或分区函数表达式的值,通过比较计算来确定其所落在哪些预定义分区的范围并进行分区路由的策略。按是否多个分区列作为分区键以及其使用方式的不同,Range类型分为Range Columns分区Range分区两种分区策略。

  • List类型:与Range分区策略类似,基于用户指定的分区列或分区函数表达式的值,通过比较计算来确定其所落在哪些预定义分区的取值集合并进行分区路由的策略。按是否多个分区列作为分区键以及其使用方式的不同,List类型也分为List Columns分区与List分区两种分区策略。

更多详细内容请参见分区类型介绍

二级分区

PolarDB-X的二级分区支持Hash/Key/RangeColumns/Range/List/List Columns共6种分区策略。因此,PolarDB-X的一级分区与二级分区是完全正交的关系,二级分区支持使用任意两种分区策略进行组合,组合分区的数目支持达36种。

二级分区除了支持36种组合分区外,任意一种组合分区均支持使用模板化定义与非模板化定义两种用法。

模板化与非模板化

  • 模板化二级分区:各个一级分区之下的二级分区的分区数目及其分区边界值始终一致;

  • 非模板化二级分区:各个一级分区之下的二级分的分区数目及其分区边界值允许不一致。

重要

二级分区除了支持36种的组合分区外,任意一种组合分区均支持使用模板化定义与非模板化定义两种用法。

使用二级分区的注意点

  • 分区表默认所有一级分区的二级分区数目之和不允许超过8192;

  • 使用二级分区后,分区表的二级分区数目是所有的一级分区下的二级分区数目之和。因此,分区表的分区数将呈倍级上升。因此,请谨慎控制一级分区与二级分区的各自的分片数目,避免过度分区产生副作用,或超出分区总数限制而报错。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论