OceanBase数据库中子查询的实现及优化毕业论文
2022-03-25 19:27:58
论文总字数:19389字
摘 要
OceanBase是一款开源的分布式关系数据库系统,其目的是存储海量和管理高速增长的结构化数据,用廉价的PC机来提供高可用性、高扩张性的服务。
针对OceanBase最新的开源版本不支持子查询的问题,本文将结合分布式存储系统的特点来介绍子查询的实现方案以及基于二级索引技术的优化原理。首先,文章将介绍子查询实现过程中需要的技术支持,包括语法的解析、数据的过滤和计划的生成等。其次,文章重点分析了在OceanBase数据库系统中实现子查询的方案,剖析系统实现的细节。通过对其他开源数据库系统的分析,考虑子查询嵌套结构,数据过滤等问题。最后,文章在查询效率提升方面结合分布式系统的特点,给出子查询中采用二级索引来提升数据访问的性能的方案,并设计实验并验证该方案的有效性。论文最后总结全文,展望下一步工作。
关键词: 子查询 分布式系统 索引
The Implementation and Optimization of Subquery in a Distributed Database System
Abstract
OceanBase is an open source distributed database system,aimed at storing massive data, managed the structured data in high-growth and achieve high availability and high scalability by using low-cost servers.
This paper mainly discusses the key-points should be noticed when implementing and optimizing of subquery in a distributed database system. First of all, the paper will introduce the technical supports of realizing subquery in distributed database system, including syntax parsing, data filtering and program generation, etc. secondly, the realization of the subquery should take the features of each distributed system into consideration. Moreover, it is also necessary for us to analyze the other open source database system to get a correct design architecture by comparing a series of programs from other systems which will solve the problems of nesting and filtration in subquery. Finally, the paper combines the characteristics of the distributed system in the aspect of query efficiency promotion, and gives the scheme of the performance of the sub query using two levels of data to improve the performance of data access, and design the experiment and verify the effectiveness of the proposed scheme. we conclude the paper and looking forward the next step.
Key Words: subquery; distributed system; second index
目录
第一章 绪论 1
1.1 研究背景和意义 1
1.2 分布式数据库系统的发展及现状 2
1.2.1 分布式数据库系统的发展历史 2
1.2.2 分布式数据库系统的现状 2
1.3 课题研究内容 2
第二章 子查询实现的相关技术 3
2.1 基于Flex and Bison 的语法分析支持 3
2.2 数据的存储和查询的过滤 4
2.2.1 OceanBase中数据的存储结构 4
2.2.2 基于布隆过滤器(BloomFilter)技术的数据过滤实现 6
2.3 逻辑计划的生成和物理计划的实现 7
2.3.1 生成逻辑计划的流程 7
2.3.2 生成物理计划的流程 8
2.4 本章小结 11
第三章 OceanBase系统中子查询的实现 12
3.1 OceanBase的架构 12
3.1.1 系统架构 12
3.1.2 查询的执行的流程 15
3.2 子查询的实现 17
3.2.1 设计思路 17
3.2.2 实现方案 18
3.3 本章小结 23
第四章 基于二级索引的子查询优化实现 24
4.1 引言 24
4.1.1 二级索引的优化原理 24
4.1.2 增加索引后的处理流程 26
4.2 索引优化子查询的实验对照 32
4.2.1 实验环境 32
4.2.2 增加索引前后查询的性能 33
第五章 结论与展望 35
5.1 总结 35
5.2 不足之处和展望 35
参考文献 36
绪论
研究背景和意义
本章主要介绍当今世界分布式存储系统的发展现状和子查询在分布式数据库系统中实现的研究意义。
Google、Amazon、Alibaba这些互联网企业的火热催生了云计算和大数据两大热门研究方向。而无论大数据还是云计算,其后台基础设施的主要目标都是构建低成本、高性能和高可扩展性的分布式存储系统。分布式数据库系统作为分布式存储系统中的一种,是从传统的单机关系数据库系统扩展而来的。传统的关系数据系统在面对那些互联网公司的海量结构化数据的并发处理能力十分有限。在单纯数十TB的数据、数万TPS和数十万的QPS场景的时候,单纯的硬件升级和分库分表也并不总是凑效。而OceanBase的诞生就是为了满足这种互联网对关系数据库的需求,通过采用廉价的PC服务器,很好地实现了分布式数据库系统对海量的关系数据的查询。OceanBase作为一款关系数据库系统在对SQL语句支持方面还存在许多的缺陷,譬如子查询在OceanBase最新的开源版本中就尚未支持。
数据库系统在后台处理的事务中往往会运用到子查询。对于数据库系统的开发人员而言,这个实现的过程就需要涉及到对SQL语句解析的改造、数据集的过滤,逻辑计划的改变和物理操作符的实现等问题。但是,子查询的实现通常是嵌套执行。因此,在性能方面还有许多地方亟待提升。这一领域的研究和工作也就成为了今年来的热点。
请支付后下载全文,论文总字数:19389字