首页 > 其他分享 >pg 索引

pg 索引

时间:2022-12-10 16:55:56浏览次数:35  
标签:PostgreSQL name 删除 NULLS 默认 索引 pg

索引类型

  • b-tree 索引 默认 > >= between is null 等用这个
  • 哈希索引 处理=值比较
  • gin 适合 array,hstore,json,range
  • brin 线性排序的列 销售订单表的日期等
  • gist
  • sp-gist

创建索引

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

说明:

name 索引的名称。它是可选的。如果您不指定索引名称,PostgreSQL 将会自动生成一个。
table_name 是要为其创建索引的表名。
method 是索引方法的名称。包括 btree, hash, gist, spgist, gin, 和 brin。 btree 是默认的方法。您可以查看索引类型以了解更多。
column_name 是要创建索引的列名。
[ ASC | DESC ] 指定排序是顺序还是逆序。 它是可选的, ASC 是默认值。
NULLS FIRST 或 NULLS LAST 指定排序时空值在非空值之前或之后。当指定 DESC 时, NULLS FIRST 是默认的,否则 NULLS LAST 是默认的。
UNIQUE 指示创建一个唯一索引。
IF NOT EXISTS 指示只有指定的索引名称不存在时才创建索引。
PostgreSQL 会对主键列自动创建索引。

要检查查询是否使用索引,请使用该 EXPLAIN 语句。

如果您在一个索引中使用了多个列,那么此索引被称为多列索引或复合索引。

删除索引

[ IF EXISTS ]  name
[ CASCADE | RESTRICT ];

说明:

name 是要删除的索引的名称。

IF EXISTS 指示如果指定的索引不存在将不会给出错误, PostgreSQL 将会发出一个通知。

CASCADE 指示 PostgreSQL 自动删除那些依赖于此索引的对象。

RESTRICT 指示如果有其他对象依赖于此索引,则拒绝删除。 这是默认的行为。

删除索引时, PostgreSQL 默认会获取该表的排他锁并阻止任何其他的访问,知道索引删除完成。您可以使用 CONCURRENTLY 选项改变这一行为。

注意,当使用 CASCADE 选项时, 不支持 CONCURRENTLY。

查看索引

多列索引

唯一索引

表达式索引

部分索引

重建索引

标签:PostgreSQL,name,删除,NULLS,默认,索引,pg
From: https://www.cnblogs.com/braveman1021/p/16971863.html

相关文章