postgresql - pg_table_size、pg_relation_size 与 pg_total_relation_size 之间有什么区别? (PostgreSQL)

标签 postgresql

pg_table_size()pg_relation_size()pg_total_relation_size() 之间有什么区别?

我理解解释的基本差异in the documentation ,但就我的 table 实际使用的空间而言,这意味着什么?

最佳答案

对于随机表:

# select 
  pg_relation_size(20306, 'main') as main,
  pg_relation_size(20306, 'fsm') as fsm,
  pg_relation_size(20306, 'vm') as vm,
  pg_relation_size(20306, 'init') as init,
  pg_table_size(20306), 
  pg_indexes_size(20306) as indexes,
  pg_total_relation_size(20306) as total;
  main  |  fsm  |  vm  | init | pg_table_size | indexes |  total 
--------+-------+------+------+---------------+---------+--------
 253952 | 24576 | 8192 |    0 |        286720 |  196608 | 483328
(1 row)

据此,您可以知道 pg_table_sizepg_relation_size 所有返回值的总和。 pg_total_relation_sizepg_table_sizepg_indexes_size 的总和。

如果您想知道您的表使用了多少空间,请使用 pg_table_sizepg_total_relation_size 来考虑它们——一个数字仅用于表,一个数字是表+索引。

检查 storage file layout有关 fsmvminit 的含义以及它们如何存储在磁盘上的一些信息。

关于postgresql - pg_table_size、pg_relation_size 与 pg_total_relation_size 之间有什么区别? (PostgreSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41991380/

相关文章:

SQL:如何选择具有最多已知值的行?

javascript - 从 postgres 数据库中获取 Node js 中的多个 Refcursor(使用 pg-promise)

java - 如何通过应用程序关闭所有 postgres 连接

sql - postgresql 9.5 : trying to split a string into two fields based on spaces

postgresql - 如何自定义官方PostgreSQL Docker镜像的配置文件?

ruby-on-rails-3 - Rails 和 PostgreSQL 的 Having 问题

sql - 使用非常大的结果集查询 Postgresql

postgresql - BIGINT[] 有索引类型吗?

postgresql - 我应该如何设计用户阻止系统?

Postgresql 窗口函数的数值精度错误