循序渐进丨MogDB 数据库分区表的GLOBAL和LOCAL索引区别之索引列

90dfa686e2cb6b75c3f369cd32131be0.gif

现象

创建表:

create table include_global_test (id int,col1 varchar(2))
partition by range(col1)
( partition p1 values less than ('10') ) ;
ALTER TABLE include_global_test ADD CONSTRAINT pk_include_global_test PRIMARY KEY (id);

使用工具查看主键索引,发现有两列,但是创建索引明明只有一列:

cb35bcf5b4e6950852a0acd6668a08a9.png

62bc2bc5726e6237779096f359a63ee0.png

数据库版本:

042793af147950a6ae1bc29235c5a89f.png

现象原因

该索引为分区表的主键索引,为local索引,在创建索引时除了表的指定列,还包含tableoid列。

补充测试

01

普通表

普通表的主键约束:只包含主键列

fc20eb34c72bb899b0a5229280dfb138.png

02

分区表主键也是分区键

分区表主键也是分区键,主键索引是local,只包含主键列

2363f0c883b9411082335cb9e163283f.png

03

分区表主键非分区键

分区表主键但不是分区键,主键索引是global,主键索引中除了包含主键列,还有tableoid列,主键约束:PRIMARY KEY (id) INCLUDE (tableoid)

f7f709934d8ed18e23f54ff6fec4c03d.png

04

分区表的global和local索引

local索引的索引列:创建索引时指定的表的字段;

global索引的索引列:除了创建索引时指定的表的字段,还有tableoid;

7e082a334d2f60cb316cdbb1ba688be2.png

结论

  • 普通表和分区表local索引的索引列:创建索引时指定的表的字段;

  • 分区表global索引的索引列:除了创建索引时指定的表的字段,还有tableoid;

  • 如果索引时主键,则约束定义:PRIMARY KEY (id) INCLUDE (tableoid);

  • 其他索引根据pg_get_constraintdef() 函数查询结果为空。

815bb20b84d10e5b15c4df961fe80f52.gif

数据驱动,成就未来,云和恩墨,不负所托!


云和恩墨创立于2011年,是业界领先的“智能的数据技术提供商”。公司总部位于北京,在国内外35个地区设有本地办公室并开展业务。

云和恩墨以“数据驱动,成就未来”为使命,致力于将创新的数据技术产品和解决方案带给全球的企业和组织,帮助客户构建安全、高效、敏捷且经济的数据环境,持续增强客户在数据洞察和决策上的竞争优势,实现数据驱动的业务创新和升级发展。

自成立以来,云和恩墨专注于数据技术领域,根据不断变化的市场需求,创新研发了系列软件产品,涵盖数据库、数据库存储、数据库云管和数据智能分析等领域。这些产品已经在集团型、大中型、高成长型客户以及行业云场景中得到广泛应用,证明了我们的技术和商业竞争力,展现了公司在数据技术端到端解决方案方面的优势。

在云化、数字化和智能化的时代背景下,云和恩墨始终以正和多赢为目标,感恩每一位客户和合作伙伴的信任与支持,“利他先行”,坚持投入于数据技术核心能力,为构建数据驱动的智能未来而不懈努力。

我们期待与您携手,共同探索数据力量,迎接智能未来。

67b63fd1c2bb25dd45e31aec862a6c7f.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值