检查 PostgreSQL 集群中各数据库大小:\l+ 元命令与 pg_database_size 查询实战

发布时间:2026/10/8 18:37:30

检查 PostgreSQL 集群中各数据库大小:\l+ 元命令与 pg_database_size 查询实战 文档教程知识库【免费下载链接】til:memo: Today I Learned项目地址https://gitcode.com/gh_mirrors/ti/til点击查看免费下载导读在管理一个 PostgreSQL 服务器实例集群时快速摸清每个数据库占用的磁盘空间是容量规划与运维排障的常见需求。本文围绕 check-the-size-of-databases-in-a-cluster.md 的核心内容系统讲解两种检查集群内全部数据库大小的方法一是psql交互式客户端自带的\l/\l元命令二是直接查询系统目录pg_database并结合pg_database_size()、pg_size_pretty()管理函数编写 SQL。读完本文你将能随时以人类可读的格式列出集群内每个数据库的磁盘占用并按大小排序定位大头数据库。方法一使用 psql 元命令\l与\lPostgreSQL 自带的命令行客户端psql提供了一系列以反斜杠开头的元命令meta-command其中\l用于列出服务器上的所有数据库。在psql提示符下直接输入\l即可看到集群内全部数据库的清单。该命令默认展示的字段包括Name数据库名称Owner数据库属主roleEncoding字符编码Locale Provider区域设置提供方如 libc、icuCollate排序规则Ctype字符分类规则ICU LocaleICU 区域设置ICU RulesICU 自定义规则Access privileges访问权限ACL加一个多出三个字段如果追加一个加号将命令写成\l则在上述字段之外还会额外返回三列Size每个数据库的磁盘占用大小已按人类可读格式格式化如12 MBTablespace数据库所在表空间Description数据库注释说明其中Size列正是每个数据库经过格式化后的大小一眼即可对比出各库的体量差异。值得说明的是\l背后的查询实际上是对系统目录的封装。如果想知道这个元命令到底执行了什么 SQL可以在psql中执行\set ECHO_HIDDEN true再运行\lpsql就会把背后生成的查询语句一并打印出来——这也是 show-the-hidden-queries-behind-backslash-commands.md 中演示的调试技巧。方法二用 SQL 查询系统目录pg_database\l虽然方便但输出顺序与可定制性有限。如果需要按大小降序排列、只取特定字段或在脚本中复用可以直接查询 PostgreSQL 的记录系统目录。psql的\l系列命令本质上就是在读取这张系统表可参考 list-all-the-databases.md 中对pg_database的说明。pg_database系统目录中每一行对应集群内的一个数据库其中datname列保存数据库名称。结合两个管理函数即可算出各库大小pg_database_size(datname)返回指定数据库占用的字节数bigint详见 get-the-size-of-a-database.mdpg_size_pretty(bigint)把字节数转换为最合适的人类可读单位如kB、MB、GB详见 pretty-print-data-sizes.md。以下查询会列出集群内所有数据库及其大小并按大小从大到小排序select db.datname as db_name, pg_size_pretty(pg_database_size(db.datname)) as db_size from pg_database db order by pg_database_size(db.datname) desc;对查询结果稍作分析db.datname取自pg_database目录代表每个数据库的名称pg_database_size(db.datname)先以字节为单位算出原始大小供order by精确排序pg_size_pretty(...)负责将原始字节数包装成kB/MB/GB等可读格式呈现在db_size列由于排序依据是原始字节数而非格式化后的字符串所以即使大小相差很多倍GB与MB之间也能得到正确的数值顺序不会出现字典序错乱。深入理解从单库大小到集群全貌pg_database_size()并不只能用于集群级统计。单独查看某个数据库的大小时可以直接传入数据库名select pg_size_pretty(pg_database_size(hr_hotels)); -- 输出示例12 MB这与上文集群查询使用的是同一套函数区别仅在于作用范围。若需要继续下钻到更细粒度PostgreSQL 还提供了一组同族管理函数可用于排查集群中某个库的体重究竟来自哪些对象pg_relation_size(表名或索引名)返回指定表或索引占用的字节数参见 get-the-size-of-a-table.md 与 get-the-size-of-an-index.md组合使用pg_size_pretty(pg_relation_size(...))即可得到表级、索引级的可读大小参见 get-the-size-on-disk-of-an-index.md。从实践角度看一个典型的排查路径是先用\l或上述 SQL 找出集群中最大的数据库再用\d查看该库内各表及其索引的名称最后逐表计算pg_relation_size()定位占用最高的对象。小结交互式场景在psql中输入\l查看数据库清单输入\l额外获得Size、Tablespace、Description三列其中 Size 列即每个数据库的可读大小。脚本化 / 排序场景直接查询pg_database系统目录用pg_database_size()取字节数、pg_size_pretty()格式化、order by pg_database_size(db.datname) desc按真实大小降序排列。排查深挖结合pg_relation_size()与\d将统计粒度从数据库下钻到表与索引形成完整的容量分析链路。调试元命令设置\set ECHO_HIDDEN true可查看\l背后实际执行的 SQL理解元命令与系统目录之间的关系。上述方法均基于 PostgreSQL 内建的管理函数与系统目录不依赖任何第三方扩展适用于大多数标准 PostgreSQL 部署环境。赞分享文档教程知识库【免费下载链接】til:memo: Today I Learned项目地址https://gitcode.com/gh_mirrors/ti/til点击查看免费下载相关推荐如何永久保存微信聊天记录WeChatMsg免费工具完整指南如何永久保存微信聊天记录WeChatMsg免费工具完整指南 你是否担心珍贵的微信聊天记录会随着手机更换或误删而永远消失那些与家人朋友的温馨对话、重要的工作沟TIL 仓库实战在 PostgreSQL 中列出所有数据库的两种方式psql 元命令与 pg_database 查询TIL 仓库实战在 PostgreSQL 中列出所有数据库的两种方式psql 元命令与 pg_database 查询 导读 本文源自 TILToday文档教程知识库StarRocks SHOW FILE 命令详解数据库文件元信息查询与实战StarRocks SHOW FILE 命令详解数据库文件元信息查询与实战 本文围绕 StarRocks 的 SHOW FILE 语句展开讲解如何查看已托管数据库OLAP数据仓库大数据湖仓一体数据分析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/8 18:32:29

2026全国知识管理软件排行榜 5个核心维度实力横评

开篇速览:2026知识管理软件选型核心参考标准中国软件行业协会2025年企业级软件选型调研数据显示,68%的企业在知识管理工具选型时,最关注系统集成能力、数据安全合规性、功能与业务场景的适配度三类核心指标,当前知识分散、系统割裂…

2026/10/8 18:32:29

多智能体系统混合架构设计:自研编排与通用框架协同落地

1. 这不是技术站队,而是工程现实的妥协:一个真实落地项目里的架构选择逻辑“多智能体系统”这个词现在听上去很酷,但如果你真在一线带过三个以上Agent协同任务的项目,就会发现它背后藏着一连串让人头皮发紧的问题:任务…

2026/10/8 19:32:43

网盘直链下载不装客户端:LinkSwift 用户脚本安装与取链配置指南

网盘直链下载不装客户端:LinkSwift 用户脚本安装与取链配置指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云…

2026/10/8 19:32:43

Blazor Admin 关联表怎么处理?Navigate、Include、Join 实战

后台开发里关联表几乎是必选项:订单要显示客户名、文章要选专栏、用户要分配角色、菜单要挂父子。这篇讲 EasyAdminBlazor 里关联数据从建模到查询、展示、编辑的完整做法。 一、四种关联,四种 Navigate 写法 FreeSql 用 [Navigate] 描述关联&#xff0…

2026/10/8 10:03:18

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/8 10:03:20

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 0:02:17

自然数立方等于连续奇数之和:从证明到编程验证

十几年来我一直游走在数学科普和编程教学这两块内容之间,对“看起来像魔法、拆开全是数学”的结论总是格外敏感。最近翻资料时又撞见一句话:任何一个自然数 m 的立方,都可以写成 m 个连续奇数之和。2 的立方等于 3 加 5,3 的立方等…

2026/10/8 0:02:17

C#上位机SSH连接实战:用SSH.NET补齐超时、批量与密钥认证

简介:这是一份基于 C# 开发的 SSH 连接功能半成品工程,原本作为另一个主项目的子功能模块,现独立打包分享。工程采用 WinForms 界面,包含源码、解决方案、安装部署工程、NuGet 依赖包及说明文档,适合正在做远程连接、网…

2026/10/8 0:02:17

Java SpringBoot一体化智能售后系统设计与实现全解析

毕业设计年年做,Java Web 方向的题目翻来覆去就那么几个,但“一体化智能售后系统”这个题,每次看到我都觉得值得认真聊一聊。它不是一个简单 curd 堆出来的管理系统,而是把客户、工单、派单、处理、回访、统计整条链路串起来的一套…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑