暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBASE分享:DROP INDEX 的 ONLINE 关键字

三金先生 2023-08-08
128

DROP INDEX 的 ONLINE 关键字

DBA 通过将 ONLINE 关键字作为 DROP INDEX 语句的最终规范将它包括在内,可以减少非独 占错误的风险,并能增加有索引的表的可能性。当正在最小化互斥锁的持续时间时,ONLINE 关键 字指示数据库服务器删除索引。当并发用户正在访问表时,可以删除索引。

缺省情况下,DROP INDEX 尝试将互斥锁放在索引的表上,以防止在正在删除索引时所有其它用 户访问此表。如果另一用户已经锁定此表,或正以 Dirty Read 隔离级别访问此表,则 DROP INDEX 语句失败。

在发出 DROP INDEX ONLINE 语句之后,查询优化器不会考虑在后续的查询计划或成本估计中使 用指定的索引,而且数据库服务器不支持在有索引的表上的任何其它 DDL 操作,直至已经删除了 指定的索引之后。然而,在 DROP INDEX ONLINE 语句之前就已经启用的查询操作可以继续访问 索引直至查询完成。

当没有其他用户正在访问索引时,数据库服务器删除索引,且 DROP INDEX ONLINE 语句终止执 行。

缺省情况下,DROP INDEX ONLINE 语句不会无限期地等待要释放的锁。如果一个或多个并发会 话持有表的锁,该语句可能会发生错误 -216 或 -113 而失败,除非您首先发出 SET LOCK MODE TO WAIT 语句以指定无限期等待。否则,DROP INDEX ONLINE 使用 DEADLOCK_TIMEOUT

配置参数指定的锁定的等待期,或者指定先前的 SET LOCK MODE 语句。要避免锁定错误,请在 联机删除索引之前执行 SET LOCK MODE TO WAIT (没有特定的限制)。

不能使用 CREATE INDEX 语句声明一个已经具有相同标识的新索引,直至已经删除了指定索引之 后。最多有一个 CREATE INDEX ONLINE 或 DROP INDEX ONLINE 语句可以在同一个表上并发 地引用索引。

DROP INDEX ONLINE 语句中的索引的表可以是永久的或临时的、记录的或不记录的以及分片的或不 分片的。然而,当您删除具有以下属性的索引时,不能指定 ONLINE 关键字:

⚫ 功能索引

⚫ 集群索引

⚫ 虚拟索引

⚫ R-tree 索引

以下语句指示了数据库服务器联机删除索引 idx_01:

DROP INDEX IF EXISTS idx_01 ONLINE;  

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论