Я хотел бы получить столбцы, по которым включен индекс в PostgreSQL.
В MySQL вы можете использовать SHOW INDEXES FOR table
и посмотреть на Column_name
столбец.
mysql> show indexes from foos;
+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| foos | 0 | PRIMARY | 1 | id | A | 19710 | NULL | NULL | | BTREE | |
| foos | 0 | index_foos_on_email | 1 | email | A | 19710 | NULL | NULL | YES | BTREE | |
| foos | 1 | index_foos_on_name | 1 | name | A | 19710 | NULL | NULL | | BTREE | |
+-------+------------+---------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
Существует ли что-нибудь подобное для PostgreSQL?
Я попытался \d
в psql
командной строке (с -E
возможностью показать SQL), но он не показывает информацию, которую я ищу.
Обновление: спасибо всем, кто добавил свои ответы. cope360 дал мне именно то, что я искал, но несколько человек поделились очень полезными ссылками. Для дальнейшего ознакомления посмотрите документацию для pg_index (через Милена А. Радева ) и очень полезную статью Извлечение информации META из PostgreSQL (через Михала Никласа ).