sql - 在 postgres 中计算表大小的正确方法是什么?

标签 sql postgresql

我正在开展一个项目,其中对 postgres 数据库中的某些表进行计算,并且在代码的不同部分,进行了 2 种不同的计算:

select pg_total_relation_size ('TABLENAME');

第二个:

select (relpages*8/1024) from pg_class where relname='TABLENAME' (Size in MB)

我知道 pg_total_relation_size 是我需要使用的,但我想知道另一个计算代表什么,如果第二个也是某种大小计算,为什么同一个表我得到不同的结果?

最佳答案

您可以使用 pg_size_pretty(pg_total_relation_side(oid)) 漂亮地打印表格大小:

select  nspname
,       relname
,       pg_size_pretty(pg_total_relation_size(c.oid)) as "size"
from    pg_class c
left join
        pg_namespace n 
on      n.oid = c.relnamespace
where   nspname not in ('pg_catalog', 'information_schema')
order by
        pg_relation_size(c.oid) desc;

关于sql - 在 postgres 中计算表大小的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24825092/

相关文章:

mysql - 查找列中的不同值并在 sql 中添加另一列

sql - 我可以在 SQL Server Express 中进行开发以便稍后在完整的 SQL Server 中部署吗?

mysql - Laravel Eloquent 支持 MariaDb 动态列

sql - 查询 SQL 字段是否包含多个值中的任意一个

sql - 没有选择的Postgres条件唯一约束

postgresql - 不能 "brew install postgresql"

ruby-on-rails - 将我的应用程序部署到 Heroku 时出现 500 错误

c# - 在数据库中创建新表后刷新组合框

postgresql - 奇怪的 postgres 序列行为

sql - 请问这个案例如何查询?