web-dev-qa-db-fra.com

Comment répertoriez tous les index avec leur type (BTREE, Brin, HASH, etc.)

Je demande au catalogue système dans PostgreSQL 9.6.4

Obtenir un ensemble de tables de résultat et leurs index sont directement en avant, ce qui me manque, c'est le type d'index (Btree, Brin, etc.), je ne peux pas sembler trouver le type d'index n'importe où dans les catalogues système.

Comment puis-je interroger les catalogues pour obtenir une liste d'index avec leur type?

4
maxTrialfire

Les types d'index dans PostgreSQL sont stockés dans le pg_am Tableau de catalogue. afin d'obtenir une liste de toutes les tables et de leurs index avec le type d'index (ou la méthode d'accès ("am") comme l'appelle PostgreSQL) Vous pouvez exécuter ce qui suit.

SELECT tab.relname, cls.relname, am.amname
FROM pg_index idx 
JOIN pg_class cls ON cls.oid=idx.indexrelid
JOIN pg_class tab ON tab.oid=idx.indrelid
JOIN pg_am am ON am.oid=cls.relam;
7
maxTrialfire