写点什么

亚信安慧 AntDB-T:使用 Brin 索引提升 OLAP 查询性能以及节省磁盘空间

  • 2024-08-09
    浙江
  • 本文字数:1644 字

    阅读完需:约 5 分钟

亚信安慧AntDB-T:使用Brin索引提升OLAP查询性能以及节省磁盘空间

前  言 

在这个信息量爆炸的时代,数据库面临着海量数据的挑战,如何提升 OLAP 业务的查询性能、如何节省磁盘空间等问题已经成为了数据库的痛点之所在。本篇着重介绍亚信安慧 AntDB-T 中 Brin 索引的实现过程以及应用在 OLAP 业务中带来的性能提升和存储降低。 

亚信安慧 AntDB-T 作为一款 HTAP 数据库[1],有着不俗的 OLAP[2]业务处理能力,本文主要介绍 AntDB-T 数据库的 Brin 索引在 OLAP 业务中的应用。Brin 索引的大小是传统 B-Tree 索引的万分之一,且查询性能相比 B-Tree 索引提升了 3 倍,目前线上已有相关应用案例。

 

(一)亚信安慧 AntDB-T Brin 索引简介

BRIN 索引(块范围索引,Block Range Indexes),顾名思义就是对数据块区段所做的索引。它的设计思路很简洁,即通过扫描整个表,记录下每个固定区段(例如第 1 到 128 号数据块)所包含被索引字段的最小值和最大值,并依次存入索引数据中。当要处理的查询包含索引字段时,可以使用 Brin 索引,再根据最小值和最大值过滤与查询条件不符合的区段,加速查找过程。Brin 索引具有以下两个优点:索引占用的空间很小;如果键值的顺序和数据块的组织顺序相同,则针对大表的统计型 SQL 性能会大幅提升


(二)亚信安慧 AntDB-T Brin 索引实现

Brin 索引由一组相同结构的索引块组成,每个索引块含有固定数目的索引记录,每条记录里面含有一个指向最值块的指针。Brin 索引的存储结构如下图所示:

图 1:Brin 索引的存储结构图最值块里面的每条记录存放了数据区段的区段号,以及该区段中索引字段的最小值和最大值。默认情况下,Brin 索引每个区段包含的块数为 128(可以在创建索引时,通过 WITH (pages_per_range = xxx)子句来修改),而每个索引块的索引记录数固定(约为 8K/6),这样可以很容易根据公式找到对应的索引记录,进而读取对应的最值记录。


(三)AntDB-T Brin 索引在 OLAP 中的最佳实践下面来看下 Brin 索引和 B-Tree 索引在 OLAP 中的索引对比情况:通过下述的对比可以看到,Brin 索引的大小是传统 B-Tree 索引的万分之一,且查询性能相比 B-Tree 索引提升了 3 倍,查询性能的提升配合存储空间的降低,使 Brin 索引可以很好的应用于大数据量的 OLAP 业务,目前线上已有相关应用案例。首先,创建一张订单表,包含自增 ID,金额,创建时间这 3 个字段,并往里面插入数据。这里采用模拟的方式,时间范围 2020 年-2023 年,每 1 秒插入一条订单记录。

图 2:模拟订单图 B-Tree 索引接下来,在时间列上创建一个 B-Tree 索引,并执行一个查询,该查询的目的为获取 2022 年 11 月中每天的总订单额。

图 3:创建 B-Tree 索引可以从图中看到,创建索引耗时 44s,索引大小 2GB,执行的查询耗时 2366ms。Brin 索引删除 B-Tree 索引,再创建 Brin 索引,并执行相同的查询。

图 4:创建 Brin 索引从图中可以看到,创建索引耗时 20s,索引大小 208 kB,执行的查询耗时 656ms。Brin 索引的局限性

从上面的描述可以发现,Brin 索引在很大程度上依赖于数据相邻性,如果数据非常混乱,那么 Brin 索引查询重叠的条目就非常多,这将导致查询要匹配更多的索引记录,进而导致从源表中读取多个范围块才能找到要查找的记录。

但对于 OLAP 这种历史表,迁移到历史数据库中可顺序加载且很少改动,这样就可以通过创建 Brin 索引来提高查询速度,并节省磁盘空间。

 

总结本文主要讲述了亚信安慧 AntDB-T 中的 Brin 索引的简介、Brin 索引的实现、Brin 索引在 OLAP 业务中的应用以及带来的优势和局限性。感兴趣的小伙伴请持续关注亚信安慧 AntDB 数据库公众号。

 

附: 

[1]HTAP:全称为 Hybrid transaction and analysis processing,即混合事务和分析处理。HTAP 是混合型关系数据库,是能同时提供 OLTP 和 OLAP 的混合关系型数据库。

[2]OLAP:联机分析处理 OLAP 是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。

关于亚信安慧 AntDB 数据库 AntDB 数据库始于 2008 年,在运营商的核心系统上,服务国内 24 个省市自治区的数亿用户,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行超十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。

用户头像

企业数据库创新实践者 2021-07-26 加入

AntDB数据库始于2008年,服务于全国20多个省份的10亿多用户提供在线服务;具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔电信核心交易,并保障系统持续0故障运行近十年。 官网:asiainfoah.com

评论

发布
暂无评论
亚信安慧AntDB-T:使用Brin索引提升OLAP查询性能以及节省磁盘空间_AntDB_亚信AntDB数据库_InfoQ写作社区