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_size
是 pg_relation_size
所有返回值的总和。 pg_total_relation_size
是 pg_table_size
和 pg_indexes_size
的总和。
如果您想知道您的表使用了多少空间,请使用 pg_table_size
和 pg_total_relation_size
来考虑它们——一个数字仅用于表,一个数字是表+索引。
检查 storage file layout有关 fsm
、vm
和 init
的含义以及它们如何存储在磁盘上的一些信息。
关于postgresql - pg_table_size、pg_relation_size 与 pg_total_relation_size 之间有什么区别? (PostgreSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41991380/