基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
OceanBase 数据库如何实现索引构建的原子性变更
更新时间:2026-05-22 08:56
本文介绍在 OceanBase 数据库中如何实现索引构建的原子性变更。
适用版本
OceanBase 数据库 V2.X 及后续版本
如何实现索引构建的原子性变更
OceanBase 数据库 V2.X 的索引构建是异步进行的,在用户执行创建索引的 DDL 语句后,OceanBase 数据库会先返回语句执行成功,再开始创建索引。
因此,ALTER TABLE xx DROP INDEX ind, ADD KEY ind(xxx) 语句并不能保证索引构建的原子性。
对于这个问题,可以通过先 RENAME 旧的索引,再创建新的索引,待索引创建完成后,删除旧的索引。
obclient> ALTER TABLE xx RENAME INDEX ind1 TO ind2;
obclient> CREATE INDEX ind1 ON xx(xxx) USING BTREE;
obclient> DROP INDEX ind2 ON xx;