postgresql - 如何估计 Postgres 表中一列的大小?

标签 postgresql

在 Postgres 9.1 中的表中有一列 text 类型。我想知道仅该列对所需磁盘空间的影响。它不需要精确,但我想知道该列是否占数据库消耗的磁盘空间的 20%/30%/...。

我知道 pg_relation_size,但它只在表级别运行。

我有很多具有相同模式的数据库。我转储了一个较小的,并用 grep 和 cut 删除了该列,并比较了纯文本转储的大小。但这不一定是实时数据库中空间需求的良好指标,而且对于大型数据库也更难做到这一点。

最佳答案

select
    sum(pg_column_size(the_text_column)) as total_size,
    avg(pg_column_size(the_text_column)) as average_size,
    sum(pg_column_size(the_text_column)) * 100.0 / pg_relation_size('t') as percentage
from t;

关于postgresql - 如何估计 Postgres 表中一列的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18316893/

相关文章:

ruby-on-rails - 为什么新服务器上有 "PG::UndefinedFunction: ERROR: function gen_random_uuid() does not exist"而旧服务器上没有?

postgresql - 在 Postgresql 中创建最近 12 个月的表

java - 如何为原始 JSON + JSON(B) PostgreSQL 实现 Hibnernate 类型

sql - Postgres 基于触发器的插入重定向而不中断 RETURNING

postgresql - 无法创建数据库 - OperationalError : source database "template1" is being accessed by other users

postgresql - 配置热流复制时出现 postgresql 9.0 归档错误

sql - 如何将数据库列与字符串匹配

postgresql - WSO2 企业集成商 DSS

sql - 按 order_num 字段查找下一个连续行

c# - Entity Framework Core Postgres ILike 函数