【产品名称】oceanbase-ce
【产品版本】v3.1.1
【问题描述】
# 字段定义 `location` varchar(128) COLLATE utf8mb4_bin, # 分区语句 PARTITION BY HASH(location ) PARTITIONS 64; # 报错信息 ERROR 1659 (HY000): Field ‘location’ is of a not allowed type for this type of partitioning
oceanbase-ce 一下内容来自社区版文档(v3.1.1)
Hash 分区
Hash 分区适合于对不能用 Range 分区、List 分区方法的场景,它的实现方法简单,通过对分区键上的 Hash 函数值来散列记录到不同分区中。如果您的数据符合下列特点,使用 Hash 分区是个很好的选择:
- 不能指定数据的分区键的列表特征。
- 不同范围内的数据大小相差非常大,并且很难手动调整均衡。
- 使用 Range 分区后数据聚集严重。
- 并行 DML、分区剪枝和分区连接等性能非常重要。
-------------------
其中没有提及分区键类型要求,对比List Columns 分区的说明:
List Columns 分区
List Columns 分区与 List 分区的作用基本相同,不同之处在于:
- List Columns 分区的分区键不要求是整型,可以是任意类型。
- List Columns 分区的分区键可以是多列(即列向量)。
---------------------
有提及分区键可以是任意类型。
目前看起来,OceanBase-ce v3.1.1不支持针对字符串类型的字段进行Hash分区?