PostgreSQL 查看数据库及表中数据占用空间大小

1、应用场景

场景1:查看数据库占用空间大小

SELECT pg_size_pretty(pg_database_size('database_name'));

场景2:查看每张表占用空间大小

SELECTtable_schema || '.' || table_name AS table,#仅表数据pg_size_pretty(pg_relation_size(table_schema || '.' || table_name)) AS size#表数据+索引数据#pg_size_pretty(pg_total_relation_size(table_schema || '.' || table_name)) AS size
FROM information_schema.tables
WHERE table_schema = 'public'
ORDER BYpg_relation_size(table_schema || '.' || table_name) DESC;#pg_total_relation_size(table_schema || '.' || table_name) DESC;

查看特定表占用大小, 可用:

#仅表数据
SELECT pg_size_pretty(pg_relation_size('schemal_test.table_test'));
#表数据+索引数据
SELECT pg_size_pretty(pg_total_relation_size('schemal_test.table_test'));
2、PostgreSQL 空间大小知多少
表空间(Table Space)
#查找 postgresql 表空间大小
SELECT pg_size_pretty (pg_tablespace_size ('tablespace_name'));#所有表空间的名称和大小
SELECT spcname, pg_size_pretty(pg_tablespace_size(spcname)) as size from pg_tablespace;
数据库(Database)
#查找单个 postgresql 数据库大小
SELECT pg_size_pretty(pg_database_size('db_name'));#所有数据库的总大小,以易读的格式显示
SELECT pg_size_pretty(SUM(pg_database_size(datname))) FROM pg_database;#查看所有数据库的列表及其大小(以 GB 为单位),降序
SELECTpg_database.datname as db_name,pg_database_size(pg_database.datname)/1024/1024/1024 as db_size
FROM pg_database ORDER by db_size DESC;#或 pg_size_pretty用修饰大小
SELECTpg_database.datname as db_name,pg_size_pretty(pg_database_size(pg_database.datname)) as db_size
FROM pg_database ORDER by pg_database_size(pg_database.datname) DESC;#查看所有数据库的名称、所有者以及它们各自的大小
SELECT db.datname AS db_name,pg_catalog.pg_get_userbyid(db.datdba) AS owner,CASEWHEN pg_catalog.has_database_privilege(db.datname, 'CONNECT') THENpg_catalog.pg_size_pretty(pg_catalog.pg_database_size(db.datname))ELSE 'No Access'END AS size
FROM pg_catalog.pg_database db
ORDER BY CASEWHEN pg_catalog.has_database_privilege(db.datname, 'CONNECT') THENpg_catalog.pg_database_size(db.datname)END;
模式(Schema)
#当前模式或任何模式中所有表的大小、表相关对象的大小以及总表大小
SELECT stats.relname as table_name,pg_size_pretty(pg_relation_size(statios.relid)) as table_size,pg_size_pretty(pg_total_relation_size(statios.relid) - pg_relation_size(statios.relid)) as external_size,pg_size_pretty(pg_total_relation_size(statios.relid)) as total_table_size,stats.n_live_tup as live_rows
FROM pg_catalog.pg_statio_user_tables as statios
JOIN pg_stat_user_tables as stats
USING (relname)
WHERE stats.schemaname = 'schema_name'  -- 替换成模式名称
UNION ALL
SELECT 'TOTAL' as table_name,pg_size_pretty(sum(pg_relation_size(statios.relid))) AS table_size,pg_size_pretty(sum(pg_total_relation_size(statios.relid) - pg_relation_size(statios.relid))) AS external_size,pg_size_pretty(sum(pg_total_relation_size(statios.relid))) AS total_table_size,sum(stats.n_live_tup) AS live_rows
FROM pg_catalog.pg_statio_user_tables AS statios
JOIN pg_stat_user_tables AS stats
USING (relname)
WHERE stats.schemaname = 'schema_name'  -- 替换成模式名称
ORDER BY live_rows ASC;
表(Table-Relation)
#查看postgresql 数据库的单个表大小-不包括依赖项大小:
SELECT pg_size_pretty(pg_relation_size('schema_test.table_name'));
#SELECT pg_size_pretty(pg_relation_size('table_name'));#查看postgresql 数据库的单个表大小-包括依赖项大小:
SELECT pg_size_pretty(pg_total_relation_size('schema_test.table_name'));
#SELECT pg_size_pretty(pg_total_relation_size('table_name'));#查找当前数据库中每张表大小,包含索引
SELECT table_schema || '.' || table_name as table_name, pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) as table_size 
FROM information_schema.tables 
ORDER BY pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC#查找当前数据库中每张表和索引大小,包含索引
SELECTtable_name,pg_size_pretty(pg_table_size(table_name)) as table_size,pg_size_pretty(pg_indexes_size(table_name)) as index_size, pg_size_pretty(pg_total_relation_size(table_name)) as total_size
FROM (select ('"' || table_schema || '"."' || table_name || '"') as table_name FROM information_schema.tables) as tables
ORDER BY 4 DESC#查看表大小以及依赖项大小
SELECT schemaname as schema_name,relname as table_name,pg_size_pretty(pg_total_relation_size(relid)) as table_size,pg_size_pretty(pg_total_relation_size(relid) - pg_relation_size(relid)) as external_size
FROM pg_catalog.pg_statio_user_tables
ORDER BY pg_total_relation_size(relid) DESC;#查看所有表的行数
select relname as table_name, reltuples as rows from pg_class where relkind = ‘r’ order by rowCounts desc
索引(Index-Relation)
#postgresql数据库的单个索引大小:
SELECT pg_size_pretty(pg_indexes_size('index_name'));#列出数据库中每个索引的大小
SELECT indexrelname, pg_size_pretty(pg_relation_size(relid)) from pg_stat_user_indexes;
列(Column)
#PostgreSQL 列值大小, 要查找存储特定值需要多少空间,可以使用 pg_column_size() 函数,例如:
select pg_column_size(5::smallint);
select pg_column_size(5::int);
select pg_column_size(5::bigint);#获取OID
select * from pg_class where relname='table_name';
select oid, datname from pg_database;#查看文件地址
select pg_relation_filepath('table_name');
函数说明

函数名

返回类型

描述

pg_column_size(any)

int

存储一个指定的数值需要的字节数(可能压缩过)

pg_database_size(oid)

bigint

指定OID的数据库使用的磁盘空间

pg_database_size(name)

bigint

指定名称的数据库使用的磁盘空间

pg_indexes_size(regclass)

bigint

关联指定表OID或表名的表索引的使用总磁盘空间

pg_relation_size(relation regclass, fork text)

bigint

指定OID或名的表或索引,通过指定fork(‘main’,‘fsm’ 或’vm’)所使用的磁盘空间

pg_relation_size(relation regclass)

bigint

pg_relation_size(…, ‘main’)的缩写

pg_size_pretty(bigint)

text

把以字节计算的数值转换成一个人类易读的单位

pg_size_pretty(numeric)

text

把以字节计算的数值转换成一个人类易读的单位

pg_table_size(regclass)

bigint

指定表OID或表名的表使用的磁盘空间,除去索引(但是包含TOAST,自由空间映射和可视映射)

pg_tablespace_size(oid)

bigint

指定OID的表空间使用的磁盘空间

pg_tablespace_size(name)

bigint

指定名称的表空间使用的磁盘空间

pg_total_relation_size(regclass)

bigint

指定表OID或表名使用的总磁盘空间,包括所有索引和TOAST数据

oid获取
#获取数据表的OID
select oid,relname from pg_class where relname='table_name';
#获取数据库的OID
select oid, datname from pg_database;
#获取数据表的文件路径
select pg_relation_filepath('table_name');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/70918.shtml

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

相关文章

c++中打印任意类型任意长度数组的各种方式

目录 一、代码 二、详细解释 1. print 函数模板 2. array_size 函数模板 3. print1 函数模板 4. print2 函数模板 5. my_begin 和 my_end 函数模板 6. print3 函数模板 7. main 函数 总结 一、代码 如下代码给出了5种方式打印任意类型任意长度的数组。这段代码定义了…

ubuntu下r8125网卡重启丢失修复案例一则

刚装的一台服务器,ubuntu24.04,主板网卡是r8125,安装服务后会莫名其妙丢失驱动 按照官网的方法下载最新8125驱动包: Realtek 然后卸载驱动 rmmod r8125 然后在驱动包里安装(幸好我之前装了build-essential&#x…

[Python学习日记-84] 进程理论

[Python学习日记-84] 进程理论 简介 进程的概念 并发与并行的区别 进程并发的实现 简介 进程理论是计算机科学中一种重要的概念,用来描述操作系统中执行的程序实例。在操作系统中,每个程序的执行被称为一个进程。进程理论研究进程的创建、调度、通信…

云创智城YunCharge 新能源二轮、四轮充电解决方案(云快充、万马爱充、中电联、OCPP1.6J等多个私有单车、汽车充电协议)之新能源充电行业系统说明书

云创智城YunCharge 新能源充电行业系统说明书 ⚡官方文档 ⚡官网地址 1. 引言 随着全球环境保护和能源危机的加剧,新能源汽车行业得到了快速发展,充电基础设施建设也随之蓬勃发展。新能源充电行业系统旨在提供高效、便捷的充电服务,满足电…

OpenWebUI配置异常的外部模型导致页面无法打开

一、使用Ollama关闭OpenAI OpenWebUI自带OpenAI的API设置,且默认是打开的,默认情况下,启动后,会不断的去连https://api.openai.com/v1,但是无法连上,会报错,但是不会影响页面,能正常…

RuntimeWarning: invalid value encountered in scalar power在进行标量的幂运算时遇到了无效值

year_profit ((profit / initial_cash) ** (1 / yy) - 1) * 100 RuntimeWarning: invalid value encountered in scalar power 这个警告表示在执行标量幂运算 ((profit / initial_cash) ** (1 / yy) - 1) * 100 时遇到了无效值。常见的引发原因及解决办法如下: ###…

计算机毕业设计 ——jspssm506Springboot 的旧物置换网站

📘 博主小档案: 花花,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 花花在深度学习任务中展现出卓越的能力,包括但不限于java、python等技术。近年来,花花更…

Kafka消费者相关

Kafka生产者相关-CSDN博客 消费者消费数据基本流程 package com.hrui;import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache…

【软考-架构】备战2025软考

新老教材对比 科目1(信息系统综合)考点详解 科目2(系统架构设计案例)考点详解 科目3(系统架构设计论文)考点详解 趋于越来越具体 学习方法推荐 第一阶段 – 基础知识阶段 建议一个半月; 先过…

MMW-1碳棒磨损机设计

摘 要 为了更好的测量在一定压力下碳棒的磨损量,提高碳棒磨损量的测量精度,本文设计了一种MMW-1碳棒磨损机,该碳棒磨损机属于柱盘式摩擦磨损试验机的一种。该机器主要用于做和碳棒有关的摩擦磨损试验,可以更准确的获得相关的参数…

网络运维学习笔记(DeepSeek优化版)005网工初级(HCIA-Datacom与CCNA-EI)链路层发现协议与VLAN技术

文章目录 一、链路层发现协议1.1 思科CDP协议1.2 华为LLDP协议 二、VLAN(Virtual Local Area Network,虚拟局域网)技术详解2.1 基本概念2.2 技术特性2.3 接口工作原理2.3.1 Access模式2.3.2 Trunk模式 2.4 厂商配置对比思科配置华为配置 2.5 …

SOME/IP-SD -- 协议英文原文讲解5

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 5.1.2.5 S…

APNG格式图片文件大小优化方案 转WEBP

文章目录 原因过程相关下载相关文档后记 原因 页面上有个特效动画,PNG文件,APNG格式,13M大小,太占用内容了,要优化一下。 过程 直接上命令吧 ffmpeg -i input.apng -vf "formatrgba" -loop 0 output.web…

个人电脑小参数GPT预训练、SFT、RLHF、蒸馏、CoT、Lora过程实践——MiniMind图文版教程

最近看到Github上开源了一个小模型的repo,是真正拉低LLM的学习门槛,让每个人都能从理解每一行代码, 从零开始亲手训练一个极小的语言模型。开源地址: GitHub - jingyaogong/minimind: 🚀🚀 「大模型」2小时…

PHP Zip 文件处理指南

PHP Zip 文件处理指南 引言 ZIP文件是一种流行的压缩格式,广泛用于文件压缩和归档。PHP作为一门强大的服务器端脚本语言,提供了丰富的类和方法来处理ZIP文件。本文将详细介绍PHP中ZIP文件的处理方法,包括创建、添加文件、提取文件以及压缩和…

Java使用ZXing库生成带有Logo的二维码图片,并去除白边动态伸缩上传到阿里云OSS

文章目录 引言二维码基本原理1、二维码概述2、QR Code结构3、错误纠正级别 QR Code生成技术1、ZXing库2、生成二维码的步骤 图像处理技术1、嵌入Logo2. 去除白边 阿里云OSS基本概念1、OSS概述2. 主要功能3. 基本概念 实战演示1、依赖库2、类结构3、生成普通二维码4. 去除白边5、…

AI工具箱最新使用教程

先克隆项目 电脑需要先安装 git ,安装的画看这个 Git安装教程(超详细)。 git镜像 git clone https://github.com/Escaflowne1985/MyToolsWebBackendUser.gitgitee镜像 git clone https://gitee.com/escaflowne/MyToolsWebBackendUser.git…

Android-创建mipmap-anydpi-v26的Logo

利用 Android Studio 自动创建 创建新项目:打开 Android Studio,点击 “Start a new Android Studio project” 创建新项目。在创建项目的过程中,当设置Target SDK Version为 26 或更高版本时,Android Studio 会在项目的res目录下…

SEO炼金术(4)| Next.js SEO 全攻略

在上一篇文章 SEO炼金术(3)| 深入解析 SEO 关键要素 中,我们深入解析了 SEO 关键要素,包括 meta 标签、robots.txt、canonical、sitemap.xml 和 hreflang,并探讨了它们在搜索引擎优化(SEO)中的作…

面试葵花宝典之React(持续更新中)

1.谈谈你对HOC的理解 定义: 高阶组件是一个接收组件作为参数并返回新组件的函数,用于复用组件逻辑,遵循纯函数特性(无副作用,输出仅依赖输入)。 组合性:可嵌套使用多个 HOC。 HOC(…