暂无图片
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
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oms4.1.1初始化失败
回答 1
看一下端口8088是否已经被其他进程占用了进入oms容器:supervisorctlstatus
使用obloader导入SQL文件到OB报错
回答 1
根据这条日志:2023101214:04:06[INFO]Find0resourcesinlocalpath:“/data/xxx/xxx/”success.Elapsed:204.5ms可知程序并未
oceanbase 企业版集群,基于VMware linux ,部署实验学习环境可有可行性方案。可有偿获取
回答 3
关于怎么部署OB集群,可参考以下文章:https://www.modb.pro/db/334676https://www.modb.pro/db/336047
OceanBase2023年开发者大会在哪里何时召开?会上发布了什么产品?
回答 1
已采纳
2023年3月25日,首届OceanBase开发者大会在北京举行。大会发布了OceanBase4.1版本,公布两大友好工具,升级文档易用性,统一企业版和社区版代码分支,全面呈现了OceanBase打造
单个物理机部署多个observer实例,在bootstrap时报错ERROR 4015 (HY000): System error
回答 2
打个比方。物理CPU有多少核就是你有多少黄金。OB的CPUCOUNT有多少就是你发行多少纸币。生产环境基本是1:1配置。当然实际cpucount会配置为比物理机上CPU核数(超线程后的CPU核数)少2
磁盘利用率低是为什么呢?
回答 1
可以在对应异常的observer的日志目录执行下grep‘markandsweep’observer.log,看下是否是数据块多了,如果是的话是属于正常的。此外在并发度较高的时候,写入buffer的宏
OCP删除原有ZONE中的主机,新建ZONE的相关问题
回答 1
看报错提示应该是sys租户没有扩成3副本,可以看下sys租户副本信息。selectfromalltenant;locality字段是否有3个副本,如果不满足3副本,报错是符合预期的。
4.2.0_CE社区版,如何配置双机主从数据同步
回答 2
创建主租户(前提unit/pool已经建好)创建用户用于访问主租户的视图创建备租户(前提unit/pool已经建好),iplist 要通过主租户下的 DBAOBACCESSPOIN
关于MySQL模式下的隔离级别的支持(实验手册和官网冲突)
回答 1
Oceanbase数据库在Oracle模式下,支持三种隔离级别:读已提交(ReadCommitted):一个事务执行的查询,只能看到这次查询开始之前提交的数据。读已提交无法防止不可重复读和幻读两种异常
oceanbase 服务初始化
回答 1
可能是你主机性能不行,比如磁盘IO差,OB内部集群rpc通信和clog随时落盘,以及内部副本调整等,如果主机性能不行,会导致集群某个或多个observer不断的驱逐初始化。或者你重启下observer