OB4.x主键问题

最近阅读文档的时候想到 OB 4.x以后是可以删除、增加主键,但OB都是索引组织表是依赖主键的,所以这里有两个疑问
1、如果修改主键后数据的存储位置是否会发生改变
2、修改主键这种DDL操作是否也会也受渐进合并轮次的影响

1 个赞
  1. 修改主键后数据的存储位置是否会发生改变

当在OceanBase数据库中修改主键时,数据的存储位置可能会发生改变。这是因为主键是数据存储的依据,修改主键意味着需要重新组织数据以符合新的主键定义。这通常涉及到数据的重新排序和可能的物理存储位置的调整。在修改主键的过程中,数据库会确保数据的完整性和一致性,但这可能会导致一些性能开销,尤其是在数据量较大的情况下。

  1. 修改主键这种DDL操作是否也会受渐进合并轮次的影响

在OceanBase数据库中,DDL操作(如修改主键)通常不会直接受到渐进合并轮次的影响。渐进合并(也称为合并或压缩)是OceanBase数据库中的一种后台操作,用于合并不同版本的数据块,以优化存储和提高查询性能。DDL操作是用户发起的操作,它们会在当前的事务上下文中执行,而不会等待或依赖于后台的合并操作。然而,如果在DDL操作期间发生了合并,这可能会影响DDL操作的性能,因为合并操作可能会占用系统资源,从而影响DDL操作的执行速度。

1 个赞

那么修改主键这种操作加上并行应该要好点
官网上的资料写的渐进合并是为了减少DDL操作的成本,专指的是online DDL吗。。像添加主键这种offline DDL其实没影响是吧

1 个赞

是的 渐进合并为了优化online DDL操作,使其对业务的影响降到最低,offline DDL操作再渐进合并应该也是没影响的,如果数据量过大、可以参考下progressive_merge_num参数:
progressive_merge_num 说明