我执行了以下命令并获得了关注,但是由于不了解pg_tablespace_size的工作原理,因此对表大小的操作有些困惑:
my_db=> select pg_size_pretty(pg_total_relation_size('my_table'));
pg_size_pretty
----------------
123 GB
(1 row)
my_db=> select pg_size_pretty(pg_indexes_size('my_table'));
pg_size_pretty
----------------
34 GB
(1 row)
my_db=> select pg_size_pretty(pg_relation_size('my_table'));
pg_size_pretty
----------------
27 GB
(1 row)
rest_space = pg_total_relation_size('my_table')-(pg_indexes_size('my_table')+ pg_relation_size('my_table'))
但是我不知道rest_space(62 GB)在哪里,如果有人对此进行解释,我将不胜感激。
答案 0 :(得分:1)
pg_relation_size(<tablename>)
实际上是pg_relation_size(<tablename>,’main’)
的简写(请参阅documentation)。还有一些可用空间图(fsm),可见性图(vm)和init分支将它们计入完整大小。
如果您进行pg_total_relation_size() = pg_table_size() + pg_indexes_size()