PostgreSQL BRIN索引内核代码优化思考

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

PostgreSQL BRIN索引内核代码优化思考

德哥 2017-08-26 13:39:37 浏览3307
展开阅读全文

标签

PostgreSQL , BRIN 块级索引 , 扫描方法 , 数据结构 , pages_per_range算法


背景

BRIN是PostgreSQL 9.5新增的块级索引接口,存储了被索引字段在块级别的边界值(最大值、最小值)以及其他统计信息。

当需要对某个字段进行检索时,需要扫描整个BRIN索引(这个是BRIN索引内核层面将来值得优化的点)。然后跳过不符合条件的HEAP PAGE,扫描复合条件的HEAP PAGE。实现数据过滤的目的。

原理所致,对于建立BRIN索引的字段,相关性越好,BRIN索引的过滤性就越好。

BRIN同时还支持多种类型、多列字段等。

1、多列

2、单列

3、空间数据类型

如果你还对BRIN不了解,可以阅读我写过的一些案例文章。

《PostGIS空间索引(GiST、BRIN、R-Tree)选择、优化 - 阿里云RDS Po

网友评论

登录后评论
0/500
评论
德哥
+ 关注
所属团队号: 阿里云数据库ApsaraDB