暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
面向关系型数据库的智能索引调优方法.pdf
514
14页
14次
2021-01-28
免费下载
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
Journal of Software,2020,31(3):634647 [doi: 10.13328/j.cnki.jos.005906] http://www.jos.org.cn
©中国科学院软件研究所版权所有. Tel: +86-10-62562563
面向关系数据库的智能索引调优方法
1
,
1
,
舒昭维
1
,
赵智博
1
,
宋子文
1
,
钟延辉
2
1
(东北大学 计算机科学与工程学院,辽宁 沈阳 110169)
2
(华为技术有限公司 成都研究,四川 成都 610000)
通讯作者: 王斌, E-mail: binwang@mail.neu.edu.cn
: 数据库索引是关系数据库系统实现快速查询的有效方式之一.智能索引调优技术可以有效地对数据库实
例进行索引调节,从而保持数据库高效的查询性能.现有的方法大多利用了数据库实例的查询日志,它们先从查询日
志中得到候选索引,再利用人工设计的模型选择索引,而调节索引.然而,从查询日志中产生出的候选索引可能并
未实际存在于数据库实例中,因此导致这些方法不能有效地估计这类索引对于查询的优化效果.首先,设计并实现了
一种面向关系数据库的智能索引调优系统;其次,提出了一种利用机器学习方法来构造索引的量化模型,根据该模
,可以准确地对索引的查询优化效果进行估计;接着设计了一种高效的最优索引选择算法,实现快速地从候选索引
空间中选择满足给定大小约束的最优的索引组合;最后,通过实验测试不同场景下智能索引调优系统的调优性能.
验结果表明,所提出的技术可以在不同的场景下有效地对索引进行优化,从而实现数据库系统查询性能的提升.
关键词: 索引调优;机器学习;数据库索引;优化模型;关系数据库
中图法分类号: TP18
中文引用格式: 邱涛,王斌,舒昭维,赵智博,宋子文,钟延辉.面向关系数据库的智能索引调优方法.软件学报,2020,31(3):
634647. http://www.jos.org.cn/1000-9825/5906.htm
英文引用格式: Qiu T, Wang B, Shu ZW, Zhao ZB, Song ZW, Zhong YH. Intelligent index tuning approach for relational
databases. Ruan Jian Xu e Bao/Jou rnal of Software, 2020,3 1(3):634647 (in Chinese). http://www.jos.org.cn/1000-9825/5906.htm
Intelligent In dex Tuning Approach for Relational Databases
QIU Tao
1
, WANG Bin
1
, SHU Zhao-Wei
1
, ZHAO Zhi-Bo
1
, SONG Zi-Wen
1
, ZHONG Yan-Hui
2
1
(School of Computer Science and Engineering, Northeastern University, Shenyang 110169, China)
2
(Chengdu Research Institute, Huawei Technology Co. Ltd., Chengdu 610000, Ch ina)
Abstra ct : Indexing is on e of th e most effective techniques for r elational databases to achi eve fast querypro cessing. The intelligent index
tuning technique can effectively adjust the index of the database instance to obtain efficient query performance. Most of the existing
methods utilize the query log to generate candidate indices, and then use the artificially designed models to select indices, thereby the
indices are adjusted. However, the candidate indices generated fro m the query log may not exist in the database instance, so they cannot
precisely estimate the effects of such indices on the query processing. This study first designs and implements an intelligent index tuning
system for the relational database. Secondly, it proposes a learning-based method to model the effects of indices for query processing,
accordingly, the query optimization effect of an index can be accurately estimated when selecting optimized indices. Then, an efficient
基金项目: 国家重点研发计划(2018YFB1700404); 国家自然科学基金(U1736104, 61572122, 61532021); 中央高校基本科研专
项资金(N171602003); CCF-华为数据库创新研究计划(CCF-Huawei DBIR2019009B)
Foundation item: National Key Research and Development Program of China (2018YFB1700404); National Natural Science
Foundation of China (U1736104, 61572122, 61532021); Fundamental Research Funds for the Central Universities (N171602003);
CCF-Huawei Database System Innovation Research Plan (CCF- Huawei DBIR2019009B)
本文由人工智能赋能的数据管理、分析与系统专刊特约编辑李战怀教授、于戈教授和杨晓春教授推荐.
收稿时间: 2019-07-20; 修改时间: 2019-09-10; 采用时间: 2019-11-25; jos 在线出版时间: 2020-01-10
CNKI 网络优先出版: 2020-01-10 13:34:38, http://kns.cnki.net/kcms/d etail/11.2560.TP.20200110.1334.007.html
邱涛 :面向关系数据库的智能索引调优方法
635
optimal index selection algo rithm is designed to select a set of indices with the maximal utili ty from candidate indices, which satisfy the
space threshold. Finally, experiments are conducted to test the perfor mance of the proposed system in different settings. The experimental
results show that the proposed techni que can effectively adjust the index and achieve a signif icant improvement in query performanc e for
a relational database.
Key words: index tuning; machine learning; d atabase i ndex; optimization model; relation al d atabase
数据库索引是数据库系统中一种排序的数据结构,以协助快速查询、更新数据库表中的数据
[1,2]
.合理地设
计数据库索引,可以有效提升数据库系统的检索速度.构建数据库索引虽可以提升数据库管理系统的查询性能,
但同时也存在额外的磁盘开销与索引维护代价
[3,4]
(例如更新查询引起的索引更新).因此,设计索引时需充分考
虑应用的具体需求与数据分布特点,针对具体的实例添加相应的索引结构,从而提升数据库系统的查询性能.
当前,主流的索引设计方式是人工进行设计,由数据库管理员(DBA) 或程序开发人员完成数据库实例的索
引设计
[2]
.这种设计方法存在如下两方面的限制:(1) 设计人员需要了解具体的应用需求(查询特征与分布等),
且熟悉所使用的数据库管理系统的查询优化策略与索引调用机制;(2) 当应用的查询特征与分布发生变化时,
既有的索引结构无法及时调整,以保证数据库系统高效的查询性能.由于人工设计索引存在的这些限制,使得实
际应用中会存在大量的索引设计不合理的情况,极大地影响了数据库系统的查询性能,同时也增加了服务器硬
件资源的开销.
智能索引调优技术可以解决人工设计索引存在的问题,该技术通过对应用的查询日志进行分析,动态地对
数据库实例的索引进行调整,使其对与查询日志中具有相似特征的查询提供高效的查询性能.现有的调优技术
可以分为基于规则和基于代价模型的两类.基于规则的调优技术利用特定的规则(例如满足出现频率的字段组
[5]
满足索引调用机制的字段组合)从查询日志中产生出推荐的索引集合,如果推荐索引未存在于数据库实例
,则直接在实例中建立该索引.这类方法仅考虑了利用索引能带来的查询优化效果,未考虑维护索引所需的代
.尤其对于当前常见的混合事/分析处理(HTAP)的应用,这类方法无法有效地调节索引.基于代价模型的调
优技术则进一步考虑了维护索引所需的代价,通过设计相应的收-代价模型,选择查询优化收益大于维护代价
的索引.然而,从查询日志中产生的推荐索引可能并未实际存在于数据库实例中,现有的基于代价模型的方法不
能准确地估计这类索引的查询优化效果与维护代价;同时,该类方法未考虑数据库实例中现有索引与数据分布
对于查询性能的影响,致使其无法有效的进行索引调节.
另一方面,机器学习已经广泛地应用于各个领域.现有的技术已经利用了机器学习的方法来实现数据库的
查询优化.例如,相比于传统的利用人工设计的模型,通过机器学习的方法可以更加准确地估计各种场景下的查
询执行时间与资源消耗
[69]
.本文针对上述基于模型的索引调优技术所存在的问题,提出了利用了机器学习的
方法来预测不同的索引对于用户查询的查询优化效果.
本文首先设计并实现了一个面向关系数据库的智能索引调优系统,该系统可以直接应用于不同的关系数
据库的实例上;其次,提出了一种利用机器学习的方法来构造对索引进行有效性量化的模型,根据该模型,可以
准确地对索引的查询优化效果进行估计;接着设计了一种高效的最优索引选择算法,实现快速地从候选索引空
间中选择最优的索引组合;最后,通过实验测试不同场景下智能索引调优系统的调优性能.实验结果表明:本文
提出的技术可以在不同的场景下有效地对索引进行优化调节,从而实现数据库系统高效的查询性能.
1 相关工作
1.1 索引构建与优化方法
目前,最典型的索引设计与调节方法是由设计人员以离线的方式完成的.设计人员分析相应应用的具体查
询业务,对于业务中常用的读查询(select 查询),对其查询条件所包含的字段建立二级索引,从而提升数据库系统
的整体查询性能
[1,2,4]
.然而,通过离线方式一次性构建的索引不能对所有的查询都具有查询优化效果,尤其对于
混合事务/分析处理(HTA P)的查询需求.为了保证索引的有效性,设计人员需要长期地根据查询日志对数据库索
636
Journal of Software 软件学报 Vol.31, No.3, March 2020
引进行调优.显然,由设计人员以离线的方式索引构建与调整需要很高的代价.
一些研究工作提出了自动索引调优的方法,该类方法避免了索引构建与调整过程中人工的参与,并且能够
自动地根据应用查询日志来调整数据库索引.现有的自动索引调优技术可以分为基于规则
[5]
与基于代价模型
这两类技术.MISA
[5]
利用的规则是构建索引的字段组合需要在查询日志中满足一定的出现频率,它利用频繁项
挖掘算法 Apriori 找到查询日志中满足频率阈值的字段组合,然后在采样得到的数据库实例上再利用数据库优
化器来进行筛选,并在最终选择的字段组合上建立二级索引.SOAR 是小米公司开发的一个用于 SQL 智能优化
与改写的开源工具,同时也提供了索引调优的功能.SOAR 在通过查询日志进行索引调优时,使用的规则是选择
满足索引调用机制
[10]
的字段组合建立索引.基于规则的技术没有考虑写查询(insert,update delete 查询)引起
的索引维护的代价,对于不同应用场景的索引调优需求,该类方法无法进行有效的索引调优.
基于代价模型的调优技术通过设计相应的收益-代价模型来选择索引,根据查询日志中包含的读/写查询,
综合考虑了索引带来的查询优化效果与索引维护代价
[1114]
.该类方法的基本思路为:先通过查询日志产生出候
选索引(字段组合),然后利用设计的模型对索引进行查询优化效果评估与维护代价评估.为了计算索引的查询
优化效果,现有方法都是通过调用数据库系统的查询优化器来实现的(对于给定的查询,利用优化器比较索引存
在与不存在这两种情况下该查询的查询代价).然而实际的数据库系统中,仅有 SQL Server 能通过 What-If 分析
工具来实现类似的查询代价比较
[11]
,极大地限制了方法的可用性.另一方面,现有方法都未考虑数据库实例中现
有索引与数据分布对于查询性能的影响.
此外,还有一些工作研究了减小索引优化时添加索引对于数据库系统性能的影响
[1518]
.该类技术利用了增
量索引构建的方法,其优先对某些数据表中的记录构建(partially-bui lt)索引,并设计相应的利用 partially- built
引的数据检索算法,使得 DB MS 可以利用部分建立好的索引来优化查询性能.这类方法与数据库系统的耦合度
,需要在特定的数据库系统上修改内核模,并且大部分方法都是基于 NoS QL 数据库的技术,无法直接应用
在关系数据库上.
1.2 利用机器学习的数据库查询优化方法
现有一些工作利用机器学习的方法来估计数据库查询的代价(查询时间).文献[6]采用统计学习的方法来
估计 XML 查询的查询代价,其利用查询的操作符级别的特征,并使用一种基于变换回归(transform regression)
的机器学习模型.文献[7 ]采用统计学习的技术来预测当存在多查询并发执行时,一组查询集合的完成查询所需
的时间.文献[8 ] 所提出的方法则用于估计单个查询的查询时间,该方法考虑了查询的查询模板中的特征与查询
中操作符上的特征,并利用一种混合模型来同时使用这两类特征.文献[9]不仅可以预测查询的完成时间,还可以
用于预估查询对于硬件资源的消耗( I/O 次数).该方法使用了与文献[8]类似的特征,并使用了一种基于回归树
(regression tree)与尺度函数(scaling functi on)的混合模型.
2 智能索引调优系统框架
给定一个关系数据库的实例,智能索引调优系统利用该数据库实例上的一段时间窗口内的查询日志进行
索引调优.调优系统包含了 3 个模块,分别为查询分析模块、候选索引生成模块与索引选择模块. 1 所示为智
能索引调优系统的总体框架.
智能索引调优系统
智能索引调优系统
索引文件
候选索引
生成
索引选择
关系数据库实例
关系数据库实例
查询日志
Create index
drop index
查询分析
Fig.1 Framework of the i ntelli gent ind ex tuni ng sy ste m
1 智能索引调优系统的总体框架
智能索引调优系统 关系数据库实例
of 14
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。