首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

进阶数据库系列(十二):PostgreSQL 索引技术详解

BRINBRIN 代表块区间索引(block range indexes),存储了连续物理范围区间内的数据摘要信息。BRIN 也相比 B-树索引要小很多,维护也更容易。...pages_per_range (integer):使用于 BRIN 索引,定义用于每一个BRIN索引项的块范围由多少个表块组成。默认是128。...因此BRIN索引空间占用特别的小,对数据写入、更新、删除的影响也很小。 BRIN属于LOSSLY索引,当被索引列的值与物理存储相关性很强时,BRIN索引的效果非常的好。...BRIN适合单值类型,当被索引列存储相关性越接近1或-1时,数据存储越有序,块的边界越明显,BRIN索引的效果就越好。...实例 postgres=# create index idx_test_id on test using brin(id); CREATE INDEX postgres=# \d test

91840
您找到你想要的搜索结果了吗?
是的
没有找到

Postgres 源码学习 2—Postgres 的 VFD 机制

操作系统中的文件 数据库的本质其实就是用来存储数据的,所以免不了和文件系统、存储进行交互,万丈高楼平地起,存储一般是一个数据库的最底层,Postgres 在存储的文件管理方面也有很多的设计与抽象。...在操作系统层面,提供了一些文件操作相关的系统调用(fopen、fclose、fsync 等),我们作为上层使用者,可以直接通过 C 语言库进行调用即可(Postgres 使用 C 语言编写)。...Postgres 的 VFD 作用 Postgres 数据库在运行的过程当中,可能会打开非常多的文件,比如数据表对应的文件,元数据表文件,以及一些在 SQL 运行时打开的临时文件,例如排序、哈希表所需的文件...VFD 的基本工作方式 Postgres 主要通过一个进程私有的数组来维护 VFD,名为 VfdCache。...通过这种方式,Postgres 可以打开远超过系统和进程限制的文件数量,是一个非常精妙的设计。

7410
领券