CN108399233A - 一种基于算法的分布式数据库的查询优化方法 - Google Patents
一种基于算法的分布式数据库的查询优化方法 Download PDFInfo
- Publication number
- CN108399233A CN108399233A CN201810157070.6A CN201810157070A CN108399233A CN 108399233 A CN108399233 A CN 108399233A CN 201810157070 A CN201810157070 A CN 201810157070A CN 108399233 A CN108399233 A CN 108399233A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- query
- data base
- distributed data
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于算法的分布式数据库的查询优化方法,属于分布式数据库系统领域。该方法在分布式数据库查询优化过程中,添加了分治算法和贪心算法的步骤,其实现过程如下:1)在查询的总体上,采用分治算法设计;2)在查询的具体实现过程中,采用基于查询图的贪心算法。本发明分布式数据库的查询优化主要是利用贪心算法和分治算法的优势,以操作的执行顺序,关系的存取方法,操作执行的连接操作,不同站点之间的数据流动顺序作为切入点,进行优化。通过算法的优化,减少了一些不必要的系统开销,节省了大量的硬件和网络资源,提高了响应速度,在一定程度上增加了系统的兼容性和稳定性,提高了多次查询的解析和执行效率。
Description
技术领域
本发明涉及分布式数据库系统领域,具体地说是一种基于算法的分布式数据库的查询优化方法。
背景技术
随着大数据技术的发展和普及,对于数据的存储方式和查询技术有了越来越高的要求,数据库的体量越来越大,结构也越来越复杂,在查询效率和存储的灵活性上,传统的物理中心的数据库组织已经逐渐不能满足当前的需要,分布式数据库应运而生。
分布式数据库是物理上分散而逻辑上集中的数据库系统,具有数据的物理分布性,数据的逻辑性,站点自治性。分布式查询技术主要是把用户提交的查询请求翻译为几个相关节点都可以识别的本地查询请求,并将几个节点的查询结果汇总并返回的问题。
分布式查询优化的总则是使通信费用最低和响应时间最短,即以最小的总代价,在最短的响应时间内获得需要的数据。总代价=CPU代价+I/O代价+通信代价。响应时间是指从接收查询到完成查询的时间间隔,在分布式数据库系统中,响应时间既与通讯时间有关,又与局部的处理时间有关。
但是分布式数据库在解决传统物理中心数据库问题的同时,也存在数据库的查询响应时间不一致,数据库的结构不同(异构)的问题。针对分布式数据库的查询优化,可以提高数据库的利用效率,对于大批量的数据查询和频繁的数据库存取操作具有重要的意义。
发明内容
本发明的技术任务是针对现有技术的不足,提供一种基于算法的分布式数据库的查询优化方法,该方法利用算法的优势,尽量使查询的总代价最小和使查询的响应时间最短,并提高异构分布式数据库的容错率。
本发明解决其技术问题所采用的技术方案是:
一种基于算法的分布式数据库的查询优化方法,在分布式数据库查询优化过程中,添加了分治算法和贪心算法的步骤,其实现过程如下:
1)在查询的总体上,采用分治算法设计;
2)在查询的具体实现过程中,采用基于查询图的贪心算法。
作为本发明进一步改进的,分治算法和贪心算法在Java层面实现,其实现过程如下:
Java层面对输入的SQL查询语句针对不同类型的数据库做进一步的拼接完善;
Java层面针对不同类型数据库查询的响应时间的统计,划分相应的查询优先级,优先执行响应时间短的查询语句;
将具体的查询过程封装成为数据接口,并在Java层面采用数据接口的异步调用。
作为本发明进一步改进的,分治算法设计时,步骤如下:
1.1)将一个查询语句拆分为几个针对不同类型的数据库的查询语句;
1.2)在分布式数据库的不同的数据库中查询出符合条件的部分数据;
1.3)将查询出的部分数据整理成为为一个统一的结果集;
1.4)在分布式数据库查询出的结果集中,查询出符合条件的查询结果集。
作为本发明进一步改进的,贪心算法设计时,步骤如下:
2.1)对相邻的节点进行连接查询时,首先找出中间结果最小的连接运算,然后把两个节点合并成为一个节点;
2.2)采用1)中同样的方法继续在查询图中寻找最小代价的连接运算,并将两个节点合并,将合并过程中查询图上的线段合并,线段上的值为原先两条线段值的乘积之和;
2.3)循环1)和2)两个步骤;
2.4)最后执行剩余的两个节点的连接。
作为本发明进一步改进的,Java层面针对不同类型的数据库的拼接完善,包括分页、排序、取前几条数据。
作为本发明进一步改进的,所述数据库类型包括:MYSQL数据库、Oracle数据库。
本发明的一种基于算法的分布式数据库的查询优化方法,与现有技术相比所产生的有益效果是:
分布式数据库的查询优化主要是利用贪心算法和分治算法的优势,以操作的执行顺序,关系的存取方法,操作执行的连接操作,不同站点之间的数据流动顺序作为切入点,进行优化,以缩短响应时间,减少资源消耗,提高查询效率。
1、实现了分布式数据库中的查询效率不高的缺点,根据数据库的响应速度划分优先级,提高了响应速度;
2、采用了异步执行的方法,在一定程度上增加了系统的兼容性和稳定性;
3、利用了分治算法和贪心算法,对查询过程进行了结构上的优化,通过算法的优化,减少了一些不必要的系统开销,节省了大量的硬件和网络资源。
4、采用数据接口的形式,提高了多次查询的解析和执行效率。
附图说明
附图1是本发明分治算法的结构设计图;
附图2是本发明贪心算法的结构设计图。
具体实施方式
下面结合附图1、2,对本发明的一种基于算法的分布式数据库的查询优化方法作以下详细说明。
如附图1所示,本发明的一种基于算法的分布式数据库的查询优化方法,在分布式数据库查询优化过程中,添加了分治算法和贪心算法的步骤,其实现过程如下;
1、在查询的总体上,采用分治算法设计
如附图1所示,分治算法设计时,步骤如下:
1.1)将一个查询语句拆分为几个针对不同的数据库(MYSQL、Oracle)的查询语句;
1.2)在分布式数据库的不同的数据库中查询出符合条件的部分数据;(根据总的数据总量确定各个数据库的查询总量)
1.3)将查询出的部分数据整理成为为一个统一的结果集;
1.4)在分布式数据库查询出的结果集中,查询出符合条件的查询结果集。
2、在查询的具体实现过程中,采用基于查询图的贪心算法。
贪心算法实际上是一种自底向上的启发式的,动态的查询优化算法。其主要思想是在选择连接顺序时,总是使用一种简单的选择方法,即每次都是选择当前的代价最小的一个连接,以求达到在整个系统中的最终的查询总代价最小。
如附图2所示,贪心算法设计时,步骤如下:
2.1)对相邻的节点进行连接查询时,首先找出中间结果最小的连接运算,然后把两个节点合并成为一个节点;
2.2)采用1)中同样的方法继续在查询图中寻找最小代价的连接运算,并将两个节点合并,将合并过程中查询图上的线段合并,线段上的值为原先两条线段值的乘积之和;
2.3)循环1)和2)两个步骤;
2.4)最后执行剩余的两个节点的连接。
上述分治算法和贪心算法在Java层面实现,其实现过程如下:
Java层面对输入的SQL查询语句针对不同类型的数据库做进一步的拼接完善(如分页、排序、取前几条数据),简化了针对异构数据库的查询问题。
Java层面针对不同类型数据库查询的响应时间的统计,划分相应的查询优先级,优先执行响应时间短的查询语句,解决了响应时间划分优先级的问题。
将具体的查询过程封装成为数据接口,并在Java层面采用数据接口的异步调用,实现了对于最先查询出的部分数据的优先显示,缩短了系统整体的响应时间。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (6)
1.一种基于算法的分布式数据库的查询优化方法,其特征在于,在分布式数据库查询优化过程中,添加了分治算法和贪心算法的步骤,其实现过程如下:
1)在查询的总体上,采用分治算法设计;
2)在查询的具体实现过程中,采用基于查询图的贪心算法。
2.根据权利要求1所述的一种基于算法的分布式数据库的查询优化方法,其特征在于,分治算法和贪心算法在Java层面实现,其实现过程如下:
Java层面对输入的SQL查询语句针对不同类型的数据库做进一步的拼接完善;
Java层面针对不同类型数据库查询的响应时间的统计,划分相应的查询优先级,优先执行响应时间短的查询语句;
将具体的查询过程封装成为数据接口,并在Java层面采用数据接口的异步调用。
3.根据权利要求1、2或3所述的一种基于算法的分布式数据库的查询优化方法,其特征在于,分治算法设计时,步骤如下:
1.1)将一个查询语句拆分为几个针对不同类型的数据库的查询语句;
1.2)在分布式数据库的不同的数据库中查询出符合条件的部分数据;
1.3)将查询出的部分数据整理成为为一个统一的结果集;
1.4)在分布式数据库查询出的结果集中,查询出符合条件的查询结果集。
4.根据权利要求1、2或3所述的一种基于算法的分布式数据库的查询优化方法,其特征在于,贪心算法设计时,步骤如下:
2.1)对相邻的节点进行连接查询时,首先找出中间结果最小的连接运算,然后把两个节点合并成为一个节点;
2.2)采用1)中同样的方法继续在查询图中寻找最小代价的连接运算,并将两个节点合并,将合并过程中查询图上的线段合并,线段上的值为原先两条线段值的乘积之和;
2.3)循环1)和2)两个步骤;
2.4)最后执行剩余的两个节点的连接。
5.根据权利要求2所述的一种基于算法的分布式数据库的查询优化方法,其特征在于,Java层面针对不同类型的数据库的拼接完善,包括分页、排序、取前几条数据。
6.根据权利要求2所述的一种基于算法的分布式数据库的查询优化方法,其特征在于,所述数据库类型包括:MYSQL数据库、Oracle数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810157070.6A CN108399233A (zh) | 2018-02-24 | 2018-02-24 | 一种基于算法的分布式数据库的查询优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810157070.6A CN108399233A (zh) | 2018-02-24 | 2018-02-24 | 一种基于算法的分布式数据库的查询优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108399233A true CN108399233A (zh) | 2018-08-14 |
Family
ID=63096656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810157070.6A Pending CN108399233A (zh) | 2018-02-24 | 2018-02-24 | 一种基于算法的分布式数据库的查询优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108399233A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489445A (zh) * | 2019-08-02 | 2019-11-22 | 四川宏力信息科技有限责任公司 | 一种基于多形态复合的海量数据快速查询方法 |
CN110809082A (zh) * | 2019-10-30 | 2020-02-18 | 南京航空航天大学 | 一种基于私有云的骚扰电话拦截方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671403A (en) * | 1994-12-30 | 1997-09-23 | International Business Machines Corporation | Iterative dynamic programming system for query optimization with bounded complexity |
CN101739398A (zh) * | 2008-11-11 | 2010-06-16 | 山东省标准化研究院 | 分布式数据库多连接查询优化算法 |
CN102163195A (zh) * | 2010-02-22 | 2011-08-24 | 北京东方通科技股份有限公司 | 一种基于分布式、异构数据库统一视图的查询优化方法 |
CN103942234A (zh) * | 2013-01-21 | 2014-07-23 | 中国电信股份有限公司 | 对多个异构数据库操作的方法、中间件装置及系统 |
-
2018
- 2018-02-24 CN CN201810157070.6A patent/CN108399233A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671403A (en) * | 1994-12-30 | 1997-09-23 | International Business Machines Corporation | Iterative dynamic programming system for query optimization with bounded complexity |
CN101739398A (zh) * | 2008-11-11 | 2010-06-16 | 山东省标准化研究院 | 分布式数据库多连接查询优化算法 |
CN102163195A (zh) * | 2010-02-22 | 2011-08-24 | 北京东方通科技股份有限公司 | 一种基于分布式、异构数据库统一视图的查询优化方法 |
CN103942234A (zh) * | 2013-01-21 | 2014-07-23 | 中国电信股份有限公司 | 对多个异构数据库操作的方法、中间件装置及系统 |
Non-Patent Citations (2)
Title |
---|
尤沛泉: "基于查询图的分布式数据库查询优化算法的研究与应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
李志伟: "基于贪婪策略的分布式数据库查询优化研究", 《计算机工程与设计》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489445A (zh) * | 2019-08-02 | 2019-11-22 | 四川宏力信息科技有限责任公司 | 一种基于多形态复合的海量数据快速查询方法 |
CN110809082A (zh) * | 2019-10-30 | 2020-02-18 | 南京航空航天大学 | 一种基于私有云的骚扰电话拦截方法 |
CN110809082B (zh) * | 2019-10-30 | 2021-04-16 | 南京航空航天大学 | 一种基于私有云的骚扰电话拦截方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180239800A1 (en) | Data query method and apparatus | |
US9239741B2 (en) | System and method for flexible distributed massively parallel processing (MPP) | |
CN110134714B (zh) | 适用于大数据迭代计算的分布式计算框架缓存索引方法 | |
US20110246448A1 (en) | Database distribution system and methods for scale-out applications | |
CN101916280A (zh) | 并行计算系统及按查询内容进行负载均衡的方法 | |
JP6928677B2 (ja) | オンライン分析処理を行うためのデータ処理方法及び装置 | |
US8015195B2 (en) | Modifying entry names in directory server | |
Labouseur et al. | Scalable and Robust Management of Dynamic Graph Data. | |
CN107360031B (zh) | 一种基于优化开销收益比的虚拟网络映射方法 | |
CN106527995A (zh) | 一种i/o均衡的数据扩容迁移方法 | |
CN108399233A (zh) | 一种基于算法的分布式数据库的查询优化方法 | |
Von der Weth et al. | Multiterm keyword search in NoSQL systems | |
CN105550332A (zh) | 一种基于双层索引结构的起源图查询方法 | |
CN105359142A (zh) | 哈希连接方法、装置和数据库管理系统 | |
CN106033442A (zh) | 一种基于共享内存体系结构的并行广度优先搜索方法 | |
CN110032676B (zh) | 一种基于谓词关联的sparql查询优化方法及系统 | |
AU2019241002B2 (en) | Transaction processing method and system, and server | |
CN107918676B (zh) | 结构化查询的资源优化方法及数据库查询系统 | |
JPH07160557A (ja) | データベースアクセス処理方法 | |
CN113779084A (zh) | 基于分布式的时序数据查询方法、设备、介质及产品 | |
CN113010315A (zh) | 资源分配方法及分配装置、计算机可读存储介质 | |
WO2023000994A1 (zh) | 层次查询方法及装置 | |
CN105049315A (zh) | 一种基于虚拟网络分割的虚拟网络改进映射方法 | |
EP2979169A1 (en) | Batching tuples | |
KR101512647B1 (ko) | 질의처리엔진을 선택하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180814 |