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

MogDB在线添加索引

原创 MogDB 2024-08-07
171

可获得性

本特性自MogDB 1.1.0 版本开始引入。

特性简介

通过create index concurrently语法,以不阻塞DML的方式在线创建索引。

客户价值

创建索引时指定concurrently关键字,可以实现创建过程中不阻塞DML,不阻塞用户在线业务。

特性描述

创建索引时,一般会阻塞其他语句对该索引所依赖表的访问。指定concurrently关键字,对表加的是ShareUpdateExclusiveLock锁,可以实现创建过程中不阻塞DML。

在线添加索引,需要执行先后两次对该表的全表扫描来完成build,第一次扫描的时候创建索引,不阻塞读写操作;第二次扫描的时候合并更新第一次扫描到目前为止发生的变更。由于需要执行两次对表的扫描和build,而且必须等待现有的所有可能对该表执行修改的事务结束。这意味着该索引的创建比正常耗时更长,同时因此带来的CPU和I/O消耗对其他业务也会造成影响。

特性增强

无。

特性约束

  • 在线添加索引时只能指定一个索引的名称。
  • 普通CREATE INDEX命令可以在事务内执行,但是CREATE INDEX CONCURRENTLY不可以在事务内执行。
  • 列存表和临时表不支持CONCURRENTLY方式创建索引。
  • 分区表支持以CONCURRENTLY方式创建全局索引,但不支持创建局部索引。

依赖关系

无。

相关页面

CREATE INDEX

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

评论