如何在PostgreSQL中查询索引的元数据

Jon*_*Jon 5 postgresql schema metadata

我需要能够查询PostgreSQL数据库以获取有关索引的信息及其详细信息.

在SQL Server上,我可以执行以下操作来获取所有索引的所有表/索引/列的列表:

select TABLE_NAME, INDEX_NAME, NON_UNIQUE, COLUMN_NAME
from INFORMATION_SCHEMA.STATISTICS
where TABLE_SCHEMA = 'my_schema'
order by TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX
Run Code Online (Sandbox Code Playgroud)

似乎INFORMATION_SCHEMA的STATISTICS表是SQL Server扩展.如何在PostgreSQL中执行等效操作?

编辑:我特别试图返回一个非规范化的结果集,如下所示

TableName, IndexName, UniqueFl, ColumnName
Run Code Online (Sandbox Code Playgroud)

所以我为所有索引中的每一列都返回一行.

谢谢,乔恩

And*_*ter 6

你在寻找什么元数据?

如果你知道你在寻找什么,你可以找到各种各样的膨胀物.例如,这里是索引统计信息和元数据的转储.

SELECT *, pg_size_pretty(pg_relation_size(indexrelname::text))
    FROM pg_stat_all_indexes 
    WHERE schemaname = 'public'
Run Code Online (Sandbox Code Playgroud)

挖掘postgresql wiki会发现各种好东西.


Gav*_*vin 6

我不认为这可以从information_schema看到这个讨论.从约束以外创建的索引不在信息模式中.

但是从系统表中可以看到这个问题