postgresql12表膨胀解决(不锁表)

news/2024/7/9 19:56:27 标签: 数据库, postgresql

查看所有数据库占用磁盘空间

SELECT
  pg_database.datname AS "数据库名称",
  pg_size_pretty(pg_database_size(pg_database.datname)) AS "磁盘占用空间"
FROM
  pg_database;

发现有个数据库占用空间过大
在这里插入图片描述

查询库中所有表占用空间

SELECT
  table_name,
  pg_size_pretty(total_size) AS total_size
FROM (
  SELECT
    table_name,
    pg_total_relation_size(table_name::regclass) AS total_size
  FROM
    information_schema.tables
  WHERE
    table_schema = 'public' -- 你的数据库架构,通常是'public'
) AS table_sizes
ORDER BY
  total_size DESC;

发现有两张表超大,与实际数据量不符
在这里插入图片描述

安装pg_repack

yum install pg_repack12.x86_64

修改pg配置postgresql.conf

shared_preload_libraries = 'pg_repack'

重启pg
数据库中创建扩展

CREATE EXTENSION pg_repack;

测试使用

/usr/pgsql-12/bin/pg_repack -h 10.10.33.14 -U postgres --dry-run -d test_db --table tset_table

如下则表示可以使用
在这里插入图片描述
尝试使用

/usr/pgsql-12/bin/pg_repack -h 10.10.33.14 -U postgres --no-kill-backend --wait-timeout=3600 -d test_db --table test_table

关于参数介绍,可以参考pg_repack 1.5.0 – Reorganize tables in PostgreSQL databases with minimal locks


http://www.niftyadmin.cn/n/5345723.html

相关文章

openssl3.2/test/certs - 031 - purpose variants: clientAuth

文章目录 openssl3.2/test/certs - 031 - purpose variants: clientAuth概述笔记END openssl3.2/test/certs - 031 - purpose variants: clientAuth 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! \file my_openssl_linux_log_doc_031.txt \note openssl3.2/tes…

年少不知 Base 好,错把总包当成宝。。

今天聊一个很现实的话题:选 offer 对比薪资时,我强烈建议以 Base 为主,而不是总包。 为什么?且听鱼皮娓娓道来。 注意,以下为个人观点,仅供参考! 首先明确 Base 和总包的概念: Base&…

对Git更深入了解与学习

对Git更深入了解与学习 0. 前言0.1 工作区与暂存区 1. git remote update origin2. git push origin --delete 分支名 删除远端分支3. git remote4. git fetch5. git status5.1 git status 直观理解5.2 暂存与暂存取消 (git restore)5.3 push之后 6. git…

免费SSL数字证书申请,免费数字证书使用教程

为什么要使用SSL数字证书? 1. 数据加密(SSL数字证书通过使用加密算法对传输的数据进行加密,保证数据在传输过程中不被篡改。) 2. 使用了SSL数字证书,浏览器中不会显示不安全,小程序开通,给你的…

pyspark学习_RDD转为DataFrame

#方法1:反射机制推断RDD模式 people.txt Tom 12 Jack 13 Janny 14 from pyspark.sql import SparkSession,Row spark SparkSession.builder.getOrCreate() lines spark.sparkContext.textFile("people.txt") people lines.map(lambda x:x.split("…

STM32(更新中)

目录 1 时钟(心跳) 1.1 CubeMX基本配置 1.2 外设在时钟上的分配原理 1.3 时钟树 2 寄存器(地址) 3 GPIO 3.1 GPIO实物 3.2 GPIO两种结构(推挽/开漏) 3.3 LED 3.4 CUBEMX 3.5 常用函数 …

【大数据】Flink 中的数据传输

Flink 中的数据传输 1.基于信用值的流量控制2.任务链接 在运行过程中,应用的任务会持续进行数据交换。TaskManager 负责将数据从发送任务传输至接收任务。它的网络模块在记录传输前会先将它们收集到 缓冲区 中。换言之,记录并非逐个发送的,而…

vueRouter中scrollBehavior实现滚动固定位置

使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。 vue-router 能做到,而且更好,它让你可以自定义路由切换时页面如何滚动。 注意: 这个功能只在 HTML5 h…