博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 24 章 日常数据库维护工作_24.2. 日常重建索引...
阅读量:6848 次
发布时间:2019-06-26

本文共 609 字,大约阅读时间需要 2 分钟。

24.2. 日常重建索引

在某些情况下值得周期性地使用命令或一系列独立重构步骤来重建索引。

已经完全变成空的B树索引页面被收回重用。但是,还是有一种低效的空间利用的可能性:如果一个页面上除少量索引键之外的全部键被删除,该页面仍然被分配。因此,在这种每个范围中大部分但不是全部键最终被删除的使用模式中,可以看到空间的使用是很差的。对于这样的使用模式,推荐使用定期重索引。

对于非B树索引可能的膨胀还没有很好地定量分析。在使用非B树索引时定期监控索引的物理尺寸是个好主意。

还有,对于B树索引,一个新建立的索引比更新了多次的索引访问起来要略快, 因为在新建立的索引上,逻辑上相邻的页面通常物理上也相邻(这样的考虑目前并不适用于非B树索引)。仅仅为了提高访问速度也值得定期重索引。

在所有情况下都可以安全和容易地使用。但是由于该命令要求一个排他表锁,因此更好的方法是用一个由创建和替换步骤组成的序列来执行索引重建。支持带CONCURRENTLY选项的的索引类型可以用这种方式重建。如果创建成功并且得到的索引是可用的,则原来的索引可以使用和的命令组合替换成新创建的索引。当一个索引被用于强制唯一性或者其他约束时,可能需要用将现有的约束换成由新索引所强制的约束。在使用这种多步重建方法之前应仔细地检查,因为对于哪些索引可以采用这种方法重索引是有限制的,并且出现的错误必须被处理。

本文转自PostgreSQL中文社区,原文链接:

转载地址:http://qnlul.baihongyu.com/

你可能感兴趣的文章
Windows Developer Day - MSIX and Advanced Installer
查看>>
【tp5】ThinkCMF5框架,配置使其支持不同终端PC/WAP/Wechat能加载不同配置和视图
查看>>
spring security+freemarker获取登陆用户的信息
查看>>
[RxJS] Implement RxJS `concatMap` by Waiting for Inner Subscriptions to Complete
查看>>
ubuntu创建idea桌面快捷方式
查看>>
详解JNDI的lookup资源引用java:/comp/env
查看>>
如何在IntelliJ IDEA中使用Git .ignore插件忽略不必要提交的文件
查看>>
愿你走出半生,归来仍是Java Parser
查看>>
[转]决定人生的三种成本:机会成本,沉没成本,边际成本
查看>>
A Generic Particle IO Library
查看>>
Enterprise Library 系列教程
查看>>
windows下搭建iphone开发环境
查看>>
POJ 3414 Pots (BFS)
查看>>
利用vbs设置Java环境变量
查看>>
Ubuntu离线安装软件包
查看>>
线段树
查看>>
我们都曾经历过:生活教会我的8堂人生课
查看>>
推荐几本最好的web前端开发技术图书
查看>>
ZOJ 1015 Fishing Net(判断弦图)
查看>>
D3D中剔除模式
查看>>