首页 > 数据库 >openGauss学习笔记-141 openGauss 数据库运维-例行维护-例行重建索引

openGauss学习笔记-141 openGauss 数据库运维-例行维护-例行重建索引

时间:2023-12-04 19:01:16浏览次数:39  
标签:INDEX REINDEX 运维 例行 索引 openGauss areaS 重建

openGauss学习笔记-141 openGauss 数据库运维-例行维护-例行重建索引

141.1 背景信息

数据库经过多次删除操作后,索引页面上的索引键将被删除,造成索引膨胀。例行重建索引,可有效的提高查询效率。

数据库支持的索引类型为B-tree索引,例行重建索引可有效的提高查询效率。

  • 如果数据发生大量删除后,索引页面上的索引键将被删除,导致索引页面数量的减少,造成索引膨胀。重建索引可回收浪费的空间。
  • 新建的索引中逻辑结构相邻的页面,通常在物理结构中也是相邻的,所以一个新建的索引比更新了多次的索引访问速度要快。

141.2 重建索引

重建索引有以下两种方式:

  • 先运行DROP INDEX语句删除索引,再运行CREATE INDEX语句创建索引。

    在删除索引过程中,会在父表上增加一个短暂的排他锁,阻止相关读写操作。在创建索引过程中,会锁住写操作但是不会锁住读操作,此时读操作只能使用顺序扫描。

  • 使用REINDEX语句重建索引。

    • 使用REINDEX TABLE语句重建索引,会在重建过程中增加排他锁,阻止相关读写操作。
    • 使用REINDEX INTERNAL TABLE语句重建desc表(包括列存表的cudesc表)的索引,会在重建过程中增加排他锁,阻止相关读写操作。

141.3 操作步骤

假定在导入表“areaS”上的“area_id”字段上存在普通索引“areaS_idx”。重建索引有以下两种方式:

  • 先删除索引(DROP INDEX),再创建索引(CREATE INDEX)。

    1. 删除索引。

      openGauss=# DROP INDEX areaS_idx;
      

      当结果显示如下信息,则表示删除成功。

      DROP INDEX
      
    2. 创建索引。

      openGauss=# CREATE INDEX areaS_idx ON areaS (area_id);
      

      当结果显示如下信息,则表示创建成功。

      CREATE INDEX
      
  • 使用REINDEX重建索引。

    • 使用REINDEX TABLE语句重建索引。

      openGauss=# REINDEX TABLE areaS;
      

      当结果显示如下信息,则表示重建成功。

      REINDEX
      
    • 使用REINDEX INTERNAL TABLE重建desc表(包括列存表的cudesc表)的索引。

      openGauss=# REINDEX INTERNAL TABLE areaS;
      

      当结果显示如下信息,则表示重建成功。

      REINDEX
      

img 说明: 在重建索引前,用户可以通过临时增大maintenance_work_mem和psort_work_mem的取值来加快索引的重建。

标签:INDEX,REINDEX,运维,例行,索引,openGauss,areaS,重建
From: https://blog.51cto.com/shuchaoyang/8680675

相关文章

  • openGauss学习笔记-142 openGauss 数据库运维-例行维护-导出并查看wdr诊断报告
    openGauss学习笔记-142openGauss数据库运维-例行维护-导出并查看wdr诊断报告生成快照数据需参数enable_wdr_snapshot=on,访问WDR快照数据需要sysadmin或monadmin权限,因此需要使用root账号或其他拥有权限的账号来生成WDR诊断报告。执行如下命令新建报告文件。touch/home/om/w......
  • openGauss学习笔记-140 openGauss 数据库运维-例行维护-例行维护表
    openGauss学习笔记-140openGauss数据库运维-例行维护-例行维护表为了保证数据库的有效运行,数据库必须在插入/删除操作后,基于客户场景,定期做VACUUMFULL和ANALYZE,更新统计信息,以便获得更优的性能。140.1相关概念使用VACUUM、VACUUMFULL和ANALYZE命令定期对每个表进行维护,主要......
  • openGauss学习笔记-139 openGauss 数据库运维-例行维护-检查应用连接数
    openGauss学习笔记-139openGauss数据库运维-例行维护-检查应用连接数如果应用程序与数据库的连接数超过最大值,则新的连接无法建立。建议每天检查连接数,及时释放空闲的连接或者增加最大连接数。139.1操作步骤以操作系统用户omm登录数据库主节点。使用如下命令连接数据库......
  • openGauss学习笔记-138 openGauss 数据库运维-例行维护-检查时间一致性
    openGauss学习笔记-138openGauss数据库运维-例行维护-检查时间一致性数据库事务一致性通过逻辑时钟保证,与操作系统时间无关,但是系统时间不一致会导致诸多潜在问题,主要是后台运维和监控功能异常,因此在月度检查时建议检查各个节点的时间一致性。138.1操作步骤以操作系统用户o......
  • day09 Helm开发与实践-基于Helm的方式运维管理应用 (3.2-3.3)
    一、Helm开发与实践1、HelmChart详解1.1Chart目录结果#helmcreatenginxCreatingnginx#treenginxnginx├──charts├──Chart.yaml├──templates│  ├──deployment.yaml│  ├──_helpers.tpl│  ├──hpa.yaml│  ├──ingre......
  • SRE Google运维解密 第一章
    译者序SRE是一群天生的怀疑论者,我们怀疑一切宣传起来"高大上"的技术,以及任何"神奇"的产品一一我们只想看具体的设计架构、实现细节,以及真实的监控图表。SRE在保障系统可靠性方面并没有什么万能药,有的只是这种极强的务实态度(pragmatic)。这种务实的态度决定了SRE会认真对......
  • openGauss学习笔记-135 openGauss 数据库运维-例行维护-检查openGauss健康状态
    openGauss学习笔记-135openGauss数据库运维-例行维护-检查openGauss健康状态135.1检查办法通过openGauss提供的gs_check工具可以开展openGauss健康状态检查。注意事项扩容新节点检查只能在root用户下执行,其他场景都必须在omm用户下执行。必须指定-i或-e参数,-i会检查指定的......
  • 恒驰服务 | 华为云云上运维服务offering
    恒驰运维服务主要针对运维要求高或自身运维能力有限的客户,通过服务增购的形式,提供运维服务以协助客户做好云上资源运维管理,规避业务风险,降低运维开销,提升客户业务稳定性。适用场景:如何保障业务稳定——系统频繁宕机/网站崩溃如何优化如何提升运维能力——缺少云运维人力和经验如何......
  • linux系统运维-基础
    Linux发展史与安装一、Linux发展史1、Linux前身-Unix1968年 Multics项目MIT、Bell实验室、美国通用电气有限公司走到了一起,致力于开发Multics项目。到后期由于开发进度不是很好,MIT和Bell实验室相继离开这个项目的开发,最终导致项目搁浅。 1970年(Unix元年,时间戳)  Unix诞......
  • openGauss学习笔记-134 openGauss 数据库运维-例行维护-检查操作系统参数
    openGauss学习笔记-134openGauss数据库运维-例行维护-检查操作系统参数134.1检查办法通过openGauss提供的gs_checkos工具可以完成操作系统状态检查。前提条件当前的硬件和网络环境正常。各主机间root互信状态正常。只能使用root用户执行gs_checkos命令。操作步骤以r......