OceanBase 的每一张表都有主键,并在内部以主键为序组织数据。如果在创建用户表时不显式指定主键,系统会自动为表生成隐藏主键,隐藏主键不可被查询。
主键可以是单一字段或多个字段的组合,组合主键的字段数不能超过 64。主键一旦指定,不可更改。当用作分区表时,主键必须覆盖所有的分区列。
像传统的关系数据库一样,OceanBase 支持外键功能,这是 OceanBase 相对于其他大多数分布式数据库系统而言,在完整性约束方面的重大优势。
对于 OceanBase 来说,二级索引和表本质上是一样的,都是通过主键排序进行数据组织。索引的主键是所有索引键和表主键组合而成的,索引通过这种方式实现回表操作。同时,还可以指定 GLOBAL、LOCAL、VISIBLE、INVISIBLE等属性,以及指定 STORING 属性。
另外,OceanBase 除了支持普通索引,还支持唯一(Unique)索引、表达式索引、前缀索引、全文索引等。