暂无图片
OceanBase 会用非空唯一索引作为主键吗?
我来答
分享
暂无图片 匿名用户
OceanBase 会用非空唯一索引作为主键吗?

版本:OB 3.2.x Oracle租户,4.2.x MySQL租户。

众所周知,Oracle是堆表,通过ROWID唯一标识一行数据,数据段按写入顺序进行存储。主键索引与唯一索引的重点是约束,索引是B+树结构。MySQL是索引组织表,数据与索引均为B+树结构,当表未设置主键时,若有非空唯一索引,会选择它作为隐式主键。
而OB同MySQL一样是索引组织表,在没有定义主键时行为如何?我在官网搜到的资料,仍会创建分区级自增列,为什么没有选择非空唯一索引作为隐式主键呢?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
O
OceanBase社区传送门

不会。 如果没有指定主键,OB 会生成内部自增列作为主键(名字:__pk_increment )。
自增列是数值型,业务定义的非空索引类型很随意。显然前者在存储和使用上效率更好。
索引组织表,数据就是主键。分区表也不例外。所以分区表的主键要带上分区键。但是分区表的唯一索引(约束)就可以带上分区键(local索引)也可以不带上分区键(global索引)。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏