论文部分内容阅读
伴随着数据规模的急剧增长,集中式数据库在存储和计算等方面的局限性日趋显著,数据管理向分布式发展已成为趋势。为了对目前广泛应用的MySQL、PostGreSQL等开源数据库提供分布式支持,Amoeba、Cobar、MyCat等一系列数据库中间件应运而生,这些分布式数据库中间件为用户提供了透明的构建数据库集群的方案,能够平滑的将现有单机集中式数据库和应用迁移到“云”端。然而分布式数据库中间件目前发展尚不够完善,在包含连接、子查询等操作的复杂查询及针对增量数据集的分析查询中,性能较为低下,很大程度上的影响了分布式数据库中间件的推广和应用。针对上述问题,本文进行了如下研究:首先,论文阐述了分布式数据库中间件等相关概念,对分布式数据查询优化的发展历程和国内外关于分布式数据库性能优化研究进行了概述和总结,介绍了数据分片的概念和相关技术。本文从分布式数据库中间件的查询模式出发,分析了分布式数据库中间件查询优化的目标及途径等关键问题。然后,为减少连接、子查询等查询过程中的数据传输量,论文提出一种基于关系的分布式数据分片方法,其主要策略是构建数据集的依赖模型图,然后依据起始表的主键对数据进行分片,其他表参照起始表根据连接键进行相应的数据分片,分片尽可能的保证对于所有查询数据是本地化的。论文也对分片过程中的存储、查询等诸多细节进行了详细探讨,并在开源分布式数据库中间件MyCat上,分别使用TPC-H数据集和SSB数据集对本文提出的方法进行了实验。通过对比和分析,验证了本文的方法能够有效的减少分布式数据库中查询操作的数据传输量,提高系统查询效率。最后,本文基于分布式数据库中间件,提出了一种增量更新数据的查询优化策略来减少单个数据节点的查询执行时间。通过存储历史查询记录和历史结果集,结合数据表的增量更新记录,对同一查询操作仅计算其增量结果集,通过数据节点上的结果合并和分布式数据库中间件中的结果合并生成最终结果。为了减少系统耦合,本文利用本地数据库节点管理查询日志和历史结果,使用分布式数据库中间件控制查询的分解和结果的生成。论文定量分析了该方法的有效性并通过在TPC-H数据集中进行了增量更新的查询操作,验证了本文方法的有效性和分布式数据库中间件查询性能的提升。