基于Z-order索引和列存引擎的数据库查询优化技术的研究和实现.pdf
摘要
在大数据时代,人们在各个领域能够获取到的数据信息量是前所未有的。为
了能充分感知数据的规律信息,挖掘出数据的潜在价值,一个具有存储、分析处理
海量复杂数据能力的管理系统对现如今的各行各业而言是十分必要且关键的。然
而,数据维度的增长所导致的”维度诅咒“问题,给数据库系统的多维查询性能
表现带来了不少挑战。提升数据库系统性能的关键在于查询优化,它将高级的声
明性查询语言(如SQL)转化为高效的可执行计划。数据库的查询优化技术主要
有查询路径优化、数据存储结构优化和索引技术优化等方向。近年来,在多维数
据分析领域,索引已成为人们重点关注的查询优化技术。
传统数据库大量利用细粒度索引(如B+树)来加速查询处理。但是由于受
到最左匹配原则、存储大以及难以扩展的限制,当面对多维数据查询分析场景时,
B+树的索引性能将急剧下降甚至失效。从数据存储分布的角度看,数据库一般采
用分片打散的方式把数据分配到不同的存储单元,每个存储单元中会记录各个维
度的极值,以实现快速的过滤和剪枝。这种方式在数据存在全序的情况下具有非
常明显的过滤效果,但多维数据不存在天然的一维全序。目前采用的随机分片打
散方式往往会导致每个存储单元中的数据在多个维度上相距甚远,从而大大降低
利用极值进行过滤的效果。
为了改进当前的数据分片算法,提升数据库对高维数据的全局检索效率,本
文提出了一种基于采样分区的Z-order索引框架,它可以同时从多个维度对数据进
行排序,使具有空间相似性的多维数据存储在同一个文件中,到达对高维数据的
高效过滤。本文还针对分布式数据库环境改进了蓄水池抽样算法,并结合基于权
重的分区策略,实现了更均衡的数据分区。最后,本文在openGauss数据库的列存
引擎下基于内核函数实现应用了该索引框架,并在公开的工业测试数据集TPC-H
上证明,所提基于Z-order的空间索引结构显著提升了数据库多维查询效率,展示
了良好的可用性。
关键词:Z-order曲线,多维索引,数据降维,聚类存储,查询优化
I
ABSTRACT
ABSTRACT
Intheeraofbigdata,theamountofdatainformationavailableacrossvariousfields
isunprecedented.Inordertofullygraspthepatternswithinthedataandunearthitslatent
value,amanagementsystemcapableofstoring,analyzing,andprocessingmassiveand
complexdatahasbecomeparticularlycrucialforvariousindustriestoday.However,the
increasingdimensionalityofdatahasposedsignificantchallengestotheperformanceof
databasesystemsinmultidimensionalqueryoperations,knownasthe”curseofdimen-
sionality”.Thekeytoenhancingtheperformanceofdatabasesystemsliesinqueryop-
timization,whichtransformsadvanceddeclarativequerylanguages(suchasSQL)into
efficientexecutableplans.Queryoptimizationtechniquesindatabasesprimarilyinclude
querypathoptimization,datastoragestructureoptimization,andindextechnologyopti-
mization.
Traditionaldatabaseshe