OceanBase数据库使用分区表,一个银行账户表,采用客户号来分区,建议用什么类型分区呀? 计划也是hash,我看 官网还有个key分区 没搞明白 这2个 有啥区别,HASH分区只支持数字分区 这个不太能理解
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在 OceanBase 数据库中,分区表的设计需要根据具体的业务场景和数据分布特点来选择合适的分区类型。针对您提到的银行账户表,采用客户号作为分区键的情况,以下是关于 HASH 分区 和 KEY 分区 的详细分析及建议:
HASH 分区:
KEY 分区:
根据您的描述,银行账户表计划以客户号作为分区键。以下是两种分区方式的具体建议:
CREATE TABLE bank_account (
customer_id INT PRIMARY KEY,
account_info VARCHAR(255)
) PARTITION BY HASH(customer_id) PARTITIONS 16;
CREATE TABLE bank_account (
customer_id VARCHAR(50) PRIMARY KEY,
account_info VARCHAR(255)
) PARTITION BY KEY(customer_id) PARTITIONS 16;
CREATE TABLE bank_account (
customer_id VARCHAR(50) PRIMARY KEY,
account_info VARCHAR(255)
) PARTITION BY HASH(CRC32(customer_id)) PARTITIONS 16;
CRC32
函数将字符串类型的 customer_id
转换为整数值,从而满足 HASH 分区的要求。CRC32
)将其转换为整数类型。希望以上内容能够帮助您更好地理解 HASH 分区和 KEY 分区的区别,并为银行账户表的分区设计提供参考。