我试图了解不同object size functions的价值。我意识到,pg_database_size
大于pg_total_relation_size
,即使数据库只包含一个表。
这是一个证明这一点的小脚本:
CREATE TABLE hello(id serial NOT NULL primary key, comment text UNIQUE);
INSERT INTO hello (comment) VALUES ('hello'), ('world');
SELECT
pg_database_size('sizetest'),
pg_indexes_size('hello'),
pg_table_size('hello'),
pg_total_relation_size('hello'),
(pg_indexes_size('hello') + pg_table_size('hello')) = pg_total_relation_size('hello') AS test1
;
最后,我想提取尽可能多的细节来创建一个munin图并随时间绘制这些值。能够将pg_database_size
分解为它的组件并将它们绘制为堆叠区域会很高兴。拥有TOAST的大小也会很好,但我无法弄清楚如何获得这些。