pg_table_size,pg_relation_size和pg_total_relation_size有什么区别? (PostgreSQL)

发布时间 2023-08-11 11:06:55作者: 章怀柔
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(20306AS indexes,
  pg_total_relation_size(20306AS total;
  main  |  fsm  |  vm  | init | pg_table_size | indexes |  total
--------+-------+------+------+---------------+---------+--------
 253952 24576 8192 |    |        286720 |  196608 483328
(ROW)

由此可见,pg_table_size是pg_relation_size所有返回值的总和。 而pg_total_relation_size是pg_table_size和pg_indexes_size的总和。

如果您想知道表正在使用多少空间,请使用pg_table_size和pg_total_relation_size考虑它们-一个数字是仅表的,一个数字是表+索引的。

检查存储文件的布局,以获取有关fsm,vm和init的含义以及它们在磁盘上的存储方式的一些信息。