pg_indexes_size()

用于返回表索引大小的函数

pg_indexes_size() 是一个系统函数,用于确定表索引在磁盘上的总大小。

pg_indexes_size()PostgreSQL 9.0 中添加。

用法

pg_indexes_size ( regclass ) → bigint

调用者无需对表拥有任何权限即可确定其索引的大小。但是,对表施加 ACCESS EXCLUSIVE 锁会导致函数停滞,直到锁被释放。

要计算与表相关联的数据的总大小(即 pg_table_size()pg_indexes_size() 返回值的累加总和),请使用 pg_total_relation_size()

源代码

pg_indexes_size() 的源代码包含在 src/backend/utils/adt/dbsize.c 中;主要工作由 calculate_indexes_size() 执行。

变更历史

示例

pg_indexes_size() 的基本用法示例

postgres=# SELECT pg_size_pretty(pg_indexes_size('object_property'));
 pg_size_pretty 
----------------
 19 MB
(1 row)

请注意,从 PostgreSQL 14 开始,pg_indexes_size() 将接受任何有效关系(不仅仅是表)的名称,在这种情况下,它将始终报告索引大小为 0

postgres=# SELECT pg_indexes_size('object_property_pkey');
 pg_indexes_size 
-----------------
               0
(1 row)

尝试检索不存在的关系的总索引大小

postgres=# SELECT pg_indexes_size('foo');
ERROR:  relation "foo" does not exist
LINE 1: SELECT pg_indexes_size('foo');;

分类

系统函数

另请参阅

pg_table_size(), pg_relation_size(), pg_total_relation_size()

反馈

请在此提交关于“pg_indexes_size()”的任何评论、建议或更正。 here