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()" 的评论、建议或更正 此处