什么';s pg_表大小、pg_关系大小和;pg_总尺寸_关系_尺寸?(PostgreSQL)
什么';s pg_表大小、pg_关系大小和;pg_总尺寸_关系_尺寸?(PostgreSQL),postgresql,Postgresql,pg\u table\u size(),pg\u relationship\u size(),pg\u total\u relationship\u size()之间有什么区别 我理解所解释的基本区别,但就我的表实际使用的空间而言,这意味着什么?对于随机表: # select pg_relation_size(20306, 'main') as main, pg_relation_size(20306, 'fsm') as fsm, pg_relation_size(20306, 'vm
pg\u table\u size()
,pg\u relationship\u size()
,pg\u total\u relationship\u size()之间有什么区别
我理解所解释的基本区别,但就我的表实际使用的空间而言,这意味着什么?对于随机表:
# 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\u table\u size
是pg\u relation\u size
的所有返回值之和。而pg\u总关系\u大小
是pg\u表\u大小
和pg\u索引\u大小
的总和
如果您想知道表使用了多少空间,请使用pg_table_size
和pg_total_relationship_size
来考虑它们——一个数字是表,一个数字是表+索引
检查以获取有关fsm
、vm
和init
的含义以及它们在磁盘上的存储方式的一些信息。pg_table_size
:指定表使用的磁盘空间,不包括索引(但包括TOAST、可用空间映射和可见性映射)
pg\u relation\u size
:关系的主数据叉的大小
select
pg_size_pretty(pg_total_relation_size(relid)) as total_size,
pg_size_pretty(pg_relation_size(relid, 'main')) as relation_size_main,
pg_size_pretty(pg_relation_size(relid, 'fsm')) as relation_size_fsm,
pg_size_pretty(pg_relation_size(relid, 'vm')) as relation_size_vm,
pg_size_pretty(pg_relation_size(relid, 'init')) as relation_size_init,
pg_size_pretty(pg_table_size(relid)) as table_size,
pg_size_pretty(pg_total_relation_size(relid) - pg_relation_size(relid)) as external_size
from
pg_catalog.pg_statio_user_tables
where
schemaname = 'XXXX'
and relname like 'XXXXXX';
因此,pg_table_size不仅是pg_relation_size的所有返回值之和,还必须添加toast size
toast_bytes | 5748 MB
@我最困惑的是,一个名为“no”的“horse”返回该关系的一个fork的磁盘大小(以字节为单位)。在这个上下文中,什么是关系&fork?(我是PostgreSQL新手)它还列出了一些分叉示例:“主数据分叉”、“自由空间映射”、“可见性映射”和“初始化分叉”。那些是什么?哪一个与我的表正在使用的实际磁盘空间相关?外部大小是什么意思?总大小-总表大小数据大小-表行大小外部大小-外部元素大小,如索引等。
toast_bytes | 5748 MB