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

OceanBase系统架构分区表、主键表和无主键表

2023-12-09
1213

OceanBase 数据库支持非分区表和分区表。

未定义分区方式的表称为非分区表,否则为分区表。

分区表由一个或多个分区组成,这些分区是单独管理的,可以独立于其他分区运行。即使分区表仅由一个分区组成,该表也不同于未分区表,非分区表不能添加分区。

OceanBase 数据库支持主键表和无主键表。

主键(Primary Key)

主键是在数据表中能够唯一标识一行的列的集合。主键需要满足以下规则:

  • 值不能为 NULL 或空字符串

  • 在全表范围内主键列集合的值唯一

有主键表

有主键表即数据表中包含主键的表,在 OceanBase 数据库中需要满足以下规则:

  • 每个数据表最多拥有一个主键列集合。

  • 主键列的数量不能超过 64 列,且主键数据总长度不能超过 16 KB。

在创建有主键表后,会自动为主键列创建一个全局唯一索引,可以通过主键快速定位到行。

如下例所示,创建了一个以 emp_id 为主键的表 emp_table,它属于有主键表。

CREATE TABLE emp_table (   
  emp_id INT PRIMARY KEY,   
  emp_name VARCHAR(100),   
  emp_age INT NOT NULL 
);

无主键表

数据表中未指定主键的表称为无主键表。

如下例所示,数据表 student_table 未指定主键,它属于无主键表。

CREATE TABLE student_table (   
  student_id INT NOT NULL,   
  student_name VARCHAR(100),   
  student_age INT NOT NULL 
);

OceanBase 数据库的无主键表采用分区级自增列作为隐藏主键。

OceanBase 数据库的分区级自增列,保证其值在每个分区内是唯一的,但不保证插入数据获取到的分区级自增列一定是严格自增的。

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

评论