postgresql 数据库 重建索引 所需时间测试

news/2024/11/23 3:25:25/

postgresql 数据库 重建索引 所需时间测试

文章目录

  • postgresql 数据库 重建索引 所需时间测试
  • 前言
  • 测试前准备
  • 重建索引前数据库状态
  • 测试计划
  • 重建索引命令
  • 测试开始
      • 1.先对表2进行测试
      • 2. 表3测试
      • 3. 表1测试
  • 🌈后记

前言

众所周知,postgresql数据库使用久了,数据量更新大的表的索引会不断膨胀,需要重建索引来保证数据库的效率。那重建索引需要多长时间呢?

测试前准备

环境:
pg版本:11.5
系统:Linux

重建索引前数据库状态

查询数据库状态:
在这里插入图片描述

如图所示,上图这几个表的索引的大小已经比表中的数据量还大了,很明显索引已经膨胀了,这次我们来拿这三个表来测试一下,看看实验结果如何

测试计划

上图中表一,是一个拥有4亿数据量的表,索引已经占到了112G了,这个表我们来测试重建需要所花费多长的时间,表2和表3都是同一个分布表的子分区表,数据量也差不多,索引大小也一样,那这样打算,表2进行整表重建索引,表3进行单个索引单个索引的重建,看看他们相差多少时间。

先查看这三张表的索引数量:

表1:

在这里插入图片描述

表2:
在这里插入图片描述

表3:
在这里插入图片描述

本文章只针对测试重建索引,不对索引进行优化!!!
本文章只针对测试重建索引,不对索引进行优化!!!
本文章只针对测试重建索引,不对索引进行优化!!!

重建索引命令

REINDEX [ ( option [, ...] ) ] { INDEX | TABLE | SCHEMA | DATABASE | SYSTEM }[ CONCURRENTLY ] namewhere option can be one of:CONCURRENTLY [ boolean ]TABLESPACE new_tablespaceVERBOSE [ boolean ]
REINDEX TABLE CONCURRENTLY table_name;

注意:
(REINDEX TABLE CONCURRENTLY pg11不支持,pg14支持)

测试开始

1.先对表2进行测试

REINDEX TABLE  "表2" ;

表2中数据19Gb,数据量79340800,(8千万) ,索引条数5,大小20Gb。

在这里插入图片描述
用时953.526s

在这里插入图片描述
重建索引后,表2的索引少了8G,还是很多,需要后续继续优化,用时953.526s。

2. 表3测试

reindex index     索引命名;

在这里插入图片描述
注:
由于pg11不支持reindex index 使用 CONCURRENTLY 参数,可能会有一些影响,可能会发生死锁等等。

结果

表3中数据19Gb,数据量78852500,(8千万) ,索引条数5,大小20Gb。
在这里插入图片描述
在这里插入图片描述
用时917.059

在这里插入图片描述
经过测试,发现2种方式所用时间相差不大。

3. 表1测试

因为数据库版本是pg11.5,不支持REINDEX 使用 CONCURRENTLY 参数,为了不影响业务,在对表1的操作中只能采用drop的方法,然后并行创建索引的方式。

在这里插入图片描述
在这里插入图片描述

表1中数据19Gb,数据量499677000,(50亿) ,索引条数3,大小112Gb。

在这里插入图片描述

在这里插入图片描述
共用时3960s

在这里插入图片描述

🌈后记

如果本文章有何错误,请您评论中指出,或联系我,我会改正,如果您觉得这篇文章有用,请帮忙一键三连,让更多的人看见,谢谢
作者 yang_z_1 csdn博客地址: https://blog.csdn.net/yang_z_1?type=blog


http://www.ppmy.cn/news/812636.html

相关文章

人工神经网络中的多模态神经元

推荐:将 NSDT场景编辑器加入你的3D工具链 3D工具集: NSDT简石数字孪生 2005年,发表在《自然》杂志上的一封信描述了人类神经元对特定人的反应,例如詹妮弗安妮斯顿或哈莉贝瑞。令人兴奋的事情不仅在于他们为特定的人选择&#xff0…

win0电脑外接显示屏设置合上电脑而电脑不关机。

1.打开控制面板 2.点击硬件和声音 3.点击电源选项 4.选择关闭计算机盖子操作 5.选择关闭盖子时不采取任何操作

怎么在看视频时保持电脑屏幕不灭,干货到,WIN10如何设置电脑屏幕一直亮着

在使用电脑看视频的时候,电脑的屏幕在一段时间不操作的时候会自动进入黑屏,影响到我们观看视频,那么如何解决这个问题呢,小编今天分享给大家一个方法: 第一步、小编电脑装的是WIN10系统,这里就以WIN10系统为…

如何让电脑不进入黑屏状态,教程在这里,WIN10系统下电脑怎么设置成不黑屏

电脑如何才能不黑屏即不进入休眠模式呢,小编今天来教大家如何关闭电脑上的休眠模式设置: 第一步、小编电脑装的是WIN10系统,这里就以WIN10系统为例,首先点击电脑屏幕左下角的WINDOWS图标即“开始”选项,点击开始选项卡…

ubuntu 检测到外接显示器 但依然黑屏

问题背景:买了一个显示器,因为我的是双系统,在windows系统下可以正常显示,但是在ubuntu系统下一直接收不到信号。 一:在网上搜索,知道了是显卡驱动的问题,去下载了显卡驱动。回到了标题这里&…

Win10笔记本设置合盖不息屏的方法

正常使用Win10笔记本合上盖子就会自动熄屏,不过有一些小伙伴并不想笔记本合盖息屏,那么如果想要笔记本合盖能够不息屏的话,Win10笔记本怎么设置合盖不息屏呢?下面小编就来教一教大家Win10笔记本设置合盖不息屏的方法吧。 Win10笔记本设置合…

计算机不定时黑屏,联想一体机电脑不定时黑屏是怎么回事?

分析原因,解决方法: 电源引起 主机电源损坏或主机电源质量不佳常常会引起我们的黑屏故障。例如,当我们添加了一些新设备之后,显示器便出现了黑屏故障,排除了配件质量及兼容性问题之后电源的质量不好动力不足是故障的主…

Element Ui Tree组件实现增、删、改、查、拖拽节点 的树形结构

介绍:首先组件 | Element官网某些功能都具备了,这里我就把这些功能结合在一起更完美的使用,其次编辑节点官网是没有实例,所以这里搞了一套较完整的功能,其次编辑和添加,这里直接使用了弹窗(顾及…