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

news2024/11/17 11:41:09

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 ] name

where option can be one of:

    CONCURRENTLY [ boolean ]
    TABLESPACE new_tablespace
    VERBOSE [ 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.coloradmin.cn/o/737589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【业务功能篇42】ThreadPoolTaskExecutor多线程处理耗时较高的数据接口

业务场景:当前业务模块中,有个查询产品直通率接口,随着数据量的递增,百万级数据,并且需要并表的情况下,那么返回数据就会开始变慢,而在数据层方面,已经比较难去做进一步的sql优化&am…

一致性哈希算法小结

在实际生产应用中,经常会设置多台服务器共同组成一个集成对外提供服务,为了确保合理的分配来自客户端的请求,我们会采取负载均衡的策略。例如采用「轮询」的方式让每个节点都能公平的接收到请求;采用「加权轮询」的方式让硬件配置…

MySQL-MySQL分组查询每组最新的一条数据

方法一: 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘se_jck的博客-CSDN博客 这个错误是由于 MySQL 的新版本中默认开启了ONLY_FULL_GROUP_BY模式,即在 GROUP BY 语句中的 SELECT 列表中&am…

[MMDetection]测试模型

以下是基于MMdetection3.10版本 1、简单测试模型 测试模型一般使用tools中的test.py,一般使用方式 python tools/test.py config文件路径 权重文件路径 可以通过--show 来以gui展示检测结果 python tools/test.py config文件路径 权重文件路径 --show 可以通过--s…

【Linux】部署Prometheus + Grafana简介、监控及设置告警详细操作(多种方式安装,亲测无问题)

🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录 一、环境准备二、部署 Prometheus&am…

优思学院|精益管理入门书籍有哪些推荐?

精益管理是一门易学难精的学问,如果对其基本原则了解不正确,可能会误入歧途,不但不能发挥精益工具的威力,甚至会令企业走向错误的方向,反带来更多的浪费和捐失。以下将介绍几本经典的书籍,可以让你有效地、…

python简单使用【mac-ide:pycharm】

小白实用快捷键记录 一、Mac下安装并配置python3开发环境二、python学习三、pycharm常用快捷键记录 一、Mac下安装并配置python3开发环境 点我查看python及pycharm下载安装、环境配置 二、python学习 不是很推荐,想系统学习的同学可以做个参考: Pytho…

排序之玩转qsort函数——【C语言】

说起排序,我们会想起许多算法,在之前的博客中我也写到过,比如:冒泡排序法、快速排序法、选择排序法等等。其实在C语言中一直有一个可以将数组中的内容进行排序的函数且功能完善内容齐全的库函数——qsort函数。今天就让我们来探索…

OpenPCDet系列 | 8.2 nuScenes数据集的eval流程

0. eval转换的目标 模型的训练和测试过程输出结果是不一样的,对于训练过程是为了构建损失函数来进行训练,而对于测试过程是为了对object进行预测生成预测内容。下面以VoxelNeX检测器的类代码可见,training和testing将会输出两个内容。 clas…

C++数据结构笔记(7)——队列的顺序结构实现

1.队列&#xff0c;和现实生活中的规则类似&#xff0c;先进先出 2.队尾只允许元素进入&#xff0c;队头只允许元素退出 3.用数组来实现队列的顺序存储&#xff0c;无论哪一段都可以作为队头或者队尾 SeqQueue.h头文件 #ifndef SEQQUEUE_H #define SEQQUEUE_H #include<…

仿大众点评项目 —— Day02【优惠券秒杀、分布式锁】

❤ 作者主页&#xff1a;欢迎来到我的技术博客&#x1f60e; ❀ 个人介绍&#xff1a;大家好&#xff0c;本人热衷于Java后端开发&#xff0c;欢迎来交流学习哦&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 如果文章对您有帮助&#xff0c;记得关注、点赞、收藏、…

Java字符串类

string类的理解(以JDK8为例说明) 1.1的声明 public final class String implements java.io.Serializable&#xff0c; Comparable<String>&#xff0c; CharSequence final:String是不可被继承的 Serializable:可序列化的接口。凡是实现此接口的类的对象就可以通过…

建筑施工脚手架安全技术统一标准

为统一建筑施工脚手架设计、施工、使用及管理&#xff0c;做到技术先进、安全适用、经济合理&#xff0c;制定本标准。 本标准适用于房屋建筑工程和市政工程施工用脚手架的设计、施工、使用及管理。 建筑施工脚手架的设计、施工、使用及管理&#xff0c;除应符合本标准外&…

第一百零二天学习记录:数据结构与算法基础:初识数据结构与算法

管理系统模型&#xff08;仓库管理系统&#xff09;—顺序表 操作对象之间的关系&#xff1a;线性关系 数据结构&#xff1a;线性数据结构、线性表 &#xff08;例如&#xff1a;学生成绩管理系统、人事管理系统、仓库管理系统、通讯录等。&#xff09; 操作对象&#xff1a;若…

OWASP 定义的大模型应用最常见的10个关键安全问题

7月15日之前入驻华为云&#xff0c;可参与Check抽奖活动&#xff0c;抽奖活动在文末 1. 《OWASP 大模型应用最常见的10个关键安全问题》项目简介&#xff08;OWASP TOP10 LLMs Project&#xff09; *OWASP Top 10 for Large Language Model Applications OWASP 大模型应用程序…

vue3使用腾讯地图(‘关键词搜索、逆地址解析‘)

1.登录腾讯地图位置服务进入控制台 申请腾讯地图开发者进入控制台申请自己的key 腾讯位置服务 - 立足生态&#xff0c;连接未来 2.进入vue项目的public文件下的index.html 引入腾讯资源包&#xff0c;并把申请的key填入 <script src"https://map.qq.com/api/js?v2…

文心一言 VS 讯飞星火 VS chatgpt (57)-- 算法导论6.4 1题

文心一言 VS 讯飞星火 VS chatgpt &#xff08;57&#xff09;-- 算法导论6.4 1题 一、参照图 6-4 的方法&#xff0c;说明 HEAPSORT 在数组 A(5&#xff0c;13&#xff0c;2&#xff0c;25&#xff0c;7&#xff0c;17&#xff0c;20&#xff0c;8&#xff0c;4)上的操作过程…

怎么修复损坏的视频文件?视频文件修复办法分享!

随着科技的不断发展&#xff0c;我们的生活中已经离不开各种类型的视频文件。因为各式各样的原因&#xff0c;有时候我们的视频文件可能会损坏。 而损坏的视频文件通常是无法正常播放&#xff0c;这无疑会给我们的生活和工作造成极大的困扰。那么&#xff0c;怎么修复损坏的视…

【Linux学习】记录下Linux的常用基本指令~

1、Linux是一个操作系统&#xff0c;和windows是“并列”关系。Linux已经成为"世界第一大操作系统"。 2、Linux这种使用命令的方式比图形化界面的好处&#xff1f; &#xff08;1&#xff09;节省系统资源&#xff1a;运行图形化界面需要让系统付出一些额外开销&am…

stm32(时钟和中断事件知识点)

一、复位和时钟控制&#xff08;RCC&#xff09; 复位 系统复位 当发生以下任一事件时&#xff0c;产生一个系统复位&#xff1a; 1. NRST引脚上的低电平(外部复位) 2. 窗口看门狗计数终止(WWDG复位) 3. 独立看门狗计数终止(IWDG复位) 4. 软件复位(SW复位) 5. 低功耗管…