如何在 PostgreSQL 中列出表的所有索引及其相应的大小?

Z. *_* M. 8 postgresql indexing postgresql-12 postgresql-13

我可以查看表中所有索引的总大小

SELECT pg_size_pretty (pg_indexes_size('table_name'));

以及特定索引的大小:

select pg_size_pretty(pg_relation_size('index_name'));,

但我想分别检索一个包含表的每个索引的大小信息的列表(索引大小的列表及其所属的相应索引名称)

kli*_*lin 11

使用pg_indexes。

select indexname, pg_size_pretty(pg_relation_size(indexname::regclass)) as size
from pg_indexes
where tablename = 'my_table';
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以使用\di+psql 命令:

postgres=> \di+ schema.*
                           List of relations
 Schema |  Name  | Type  | Owner | Table  | Persistence |  Size  | Description
--------+--------+-------+-------+----------------------+--------+-------------
 schema | index1 | index | owner | table1 | permanent   | 139 MB |
 schema | index2 | index | owner | table1 | permanent   | 77 MB  |
 schema | index3 | index | owner | table1 | permanent   | 73 MB  |
 schema | index4 | index | owner | table1 | permanent   | 38 MB  |
(4 rows)
Run Code Online (Sandbox Code Playgroud)