pgsql 查看某个表建立了那些索引sql

1.创建索引

语法:

CREATE INDEX index_name ON table_name [USING method]  
(  
    column_name [ASC | DESC] [NULLS {FIRST | LAST}],  
    ...  
);

参数说明:

在上面的语法中,我们使用了以下参数,如下表所示:

参数描述
Index_name它用于定义索引名称。它应该写在CREATE INDEX 之后在这里,我们应该尽量给索引起一个通俗易懂、有意义的名字,这样容易让人想起。
Table_name表名参数用于定义表名称,该名称与该索引相关。并且在ON关键字之后指定。
Using[method]用于指定索引方法,如B-tree、GIN、HASH、GiST、BRIN、SP-GiST。默认情况下,PostgreSQL 使用B-tree 索引
Column_name列名参数使用,如果我们有存储在索引数列定义列表。在ASC和DESC用于定义排序顺序。默认情况下,它是ASC。该NULLS FIRST或NULLS LAST来形容排序之前或之后的非空值。DESC定义,那么NULLS FIRST被视为默认。当DESC没有定义,那么NULLS LAST被视为默认。
注意:如果我们想确定一个命令是否使用索引,我们可以使用 EXPLAIN 命令。

实操示例:


CREATE INDEX ics_check_reoprt_task_id_idx ON ics_check_report(task_id);

说明:ics_check_reoprt_task_id_idx :索引名称,ics_check_report : 表名,task_id: 字段名

2.查看已经创建的索引,执行以下sql:

SELECT
    ns.nspname as schema_name,
    tab.relname as table_name,
    cls.relname as index_name,
    am.amname as index_type,
    idx.indisprimary as is_primary,
    idx.indisunique as is_unique
FROM
    pg_index idx
INNER JOIN pg_class cls ON cls.oid=idx.indexrelid
INNER JOIN pg_class tab ON tab.oid=idx.indrelid
INNER JOIN pg_am am ON am.oid=cls.relam
INNER JOIN pg_namespace ns on ns.oid=tab.relnamespace
WHERE tab.relname = 'ics_check_report'

结果如下:

3.查看已经创建的索引,执行以下sql:

select * from pg_indexes where tablename = 'ics_check_report'

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值