psql 索引

索引
SELECT content FROM test1 WHERE id = constant;

在不建立索引的前提下,会扫描id列的所有行。建立索引后,则会将id列转换一个树的结构或者hash表,这样我们只要遍历查找一棵树的几层或者算出hash值即可。

索引类型
PostgreSQL提供了多种索引类型: B-tree、Hash、GiST、SP-GiST 、GIN 和 BRIN。

涉及比较操作符的psql查询规划器会考虑使用B-tree。

涉及等值比较操作符的,会考虑用Hash索引,因为Hash只能处理简单的等值比较。

GIN 索引是“倒排索引”,它适合于包含多个组成值的数据值,例如数组。倒排索引中为每一个组成值都包含一个单独的项,它可以高效地处理测试指定组成值是否存在的查询。

CREATE TABLE test2 (
  major int,
  minor int,
  name varchar
);

SELECT name FROM test2 WHERE major = constant AND minor = constant;

   CREATE INDEX test2_mm_idx ON test2 (major, minor);

只有 B-tree、GiST、GIN 和 BRIN 索引类型支持多列索引,最多可以指定32个列

参考文献:
http://www.postgres.cn/docs/10/indexes.html
http://www.postgres.cn/docs/10/using-explain.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值