一种用于分布式数据库的连接查询方法及系统技术方案

技术编号:9295797 阅读:72 留言:0更新日期:2013-10-31 00:23
本发明专利技术公开了一种用于分布式数据库的连接查询方法及系统,所述方法包括:在主控节点获取连接计算命令时,其依据该连接计算命令生成多个连接计算子命令并分发到多个相应的非主控节点;非主控节点依据连接计算子命令进行表的连接计算,之后生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件并将其发送给主控节点;主控节点汇总所有结果,并发送给客户端。通过本发明专利技术,在发起查询命令时,能够有效地提高在整个系统中进行查询的准确性,能够极大的降低系统网络通信开销,有效提高系统的计算速度,从而保证分布式数据库系统查询的高可靠性。

【技术实现步骤摘要】
一种用于分布式数据库的连接查询方法及系统
本专利技术涉及数据库信息管理系统,具体而言,涉及一种用于分布式数据库的连接查询方法及系统。
技术介绍
分布式数据库,其在逻辑上是一个统一的整体,而在物理上则是分别存储在不同的物理节点上的多个数据库。一个应用程序通过网络的连接,可以访问分布在不同地理位置的数据库。它的分布性特点表现在:逻辑数据库中的数据不是存储在同一场地的,更确切地讲,不是存储在同一计算机的存储设备上。这就是其与集中式数据库的主要区别。从用户的角度看,一个分布式数据库系统,其在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用。由于分布式数据库具有数据独立性和位置透明性等特点,其中所述透明性意味着在特定位置的应用成俗能够访问所有相连的数据库中的数据,而不用知道数据的来源以及本地数据库与多个相连的远程数据库中的任何一个是否兼容,传统集中式数据库的关联查询方法已经不再适用。分布式数据库在物理上是分别由不同的物理节点管理的,CPU资源相对来说较传统集中式数据库丰富,从而一定程度上可以合理利用CPU资源,将关联计算分发到各物理节点执行,效率将会远远高于主控节点独自计算;然而,由于分布式数据库中的数据是存储在不同场地,各物理节点在进行关联计算的时候,为了保证计算结果的准确性,需要涉及各场地间的数据传输,因此在实际应用过程中需要考虑系统通信代价。鉴于此,本专利技术提供了一种优化技术。
技术实现思路
有鉴于此,针对现有技术中各物理节点在进行关联计算之时,由于涉及多个物理节点之间的数据传输而导致的系统通信代价较大的问题,本专利技术的目的在于提供一种用于分布式数据库的连接查询方法及系统,本专利技术采用以下技术方案实现:一种用于分布式数据库的连接查询方法,包括:在主控节点获取连接计算命令时,其依据该连接计算命令生成多个连接计算子命令并分发到多个相应的非主控节点;非主控节点依据连接计算子命令进行表的连接计算,之后生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件并将其发送给主控节点;主控节点汇总所有结果,并发送给客户端。优选地,在主控节点获取连接计算命令时,选择记录数多的表作为基表,并依据非基表的分布信息向相应的非主控节点发送生成临时文件的请求消息;主控节点进一步地依据基表的分布信息向相应的非主控节点发送依据所述连接计算命令而生成的连接计算子命令;非主控节点依据所述生成临时文件的请求以及连接计算子命令进行表的连接计算,之后生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件并将其发送给主控节点;主控节点汇总所有结果,并发送给客户端。优选地,当所述连接计算命令为内连接计算命令时,所述方法具体包括:主控节点选择记录数少的表作为外层循环,并选择记录数多的表作为基表;主控节点依据非基表的分布信息,向相应的非主控节点发送生成临时文件的请求消息;主控节点依据基表的分布信息,向相应的非主控节点发送内连接计算子命令;同时执行本主控节点的内连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件;非主控节点依据内连接计算子命令进行表的内连接计算,之后生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件并将其发送给主控节点;主控节点汇总从非主控节点获取的临时文件以及本地的临时文件,并将汇总结果发送给客户端。优选地,非主控节点依据内连接计算子命令进行表的连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件的步骤包括:非主控节点选择记录数少的表作为外层循环;非主控节点选择记录数多的表作为基表;非主控节点依据内连接计算子命令进行表的内连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件。优选地,主控节点汇总从非主控节点获取的临时文件以及本地的临时文件并将汇总结果发送给客户端之后,还包括:主控节点根据非基表的分布信息,向相应非主控节点发送删除临时文件请求消息;非主控节点响应所述请求并删除存储于本地的临时文件。优选地,当所述连接计算命令为左外连接、右外连接或全连接计算命令时,所述方法具体包括:主控节点选择记录数多的表作为基表;主控节点依据非基表的分布信息,向相应的非主控节点发送生成临时文件的请求消息;主控节点依据基表的分布信息,向相应的非主控节点发送左外连接、右外连接或全连接计算子命令;并依据基表的选择情况判断是否进行二次连接操作:当进行二次连接操作时,主控节点首先进行内连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件,之后进行左外连接、右外连接或全连接计算;非主控节点依据获取的生成临时文件的请求消息,选择记录数多的表作为基表,并进行内连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件,之后进行左外连接、右外连接或全连接计算,并将计算结果发送至主控节点;主控节点汇总所有节点的计算结果之后发送给客户端;或,当不进行二次连接操作时,主控节点对表进行相应的左外连接、右外连接或全连接计算;非主控节点依据获取的生成临时文件的请求消息,选择记录数多的表作为基表,并对表进行左外连接、右外连接或全连接计算,并将计算结果发送至主控节点;主控节点汇总所有节点的计算结果之后发送给客户端。一种用于分布式数据库的连接查询系统,包括:主控节点,用于获取连接计算命令时,依据该连接计算命令生成多个连接计算子命令并分发到多个相应的非主控节点;以及进一步用于汇总所有结果,并发送给客户端;非主控节点,用于依据连接计算子命令进行表的连接计算,之后生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件并将其发送给主控节点。优选地,在主控节点获取连接计算命令时,选择记录数多的表作为基表,并依据非基表的分布信息向相应的非主控节点发送生成临时文件的请求消息;主控节点进一步地依据基表的分布信息向相应的非主控节点发送依据所述连接计算命令而生成的连接计算子命令;所述非主控节点则依据所述生成临时文件的请求以及连接计算子命令进行表的连接计算,之后生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件并将其发送给主控节点;主控节点汇总所有结果,并发送给客户端。优选地,当所述连接计算命令为内连接计算命令时,其中,主控节点选择记录数少的表作为外层循环,并选择记录数多的表作为基表;主控节点依据非基表的分布信息,向相应的非主控节点发送生成临时文件的请求消息;主控节点依据基表的分布信息,向相应的非主控节点发送内连接计算子命令;同时执行本主控节点的内连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件;非主控节点依据内连接计算子命令进行表的内连接计算,之后生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件并将其发送给主控节点;主控节点汇总从非主控节点获取的临时文件以及本地的临时文件,并将汇总结果发送给客户端。优选地,非主控节点依据内连接计算子命令进行表的连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件的步骤包括:非主控节点选择记录数少的表作为外层循环;非主控节点选择记录数多的表作为基表;非主控节点依据内连接计算子命令进行表的内连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件。优选地,所述主控节点还用于根据非基表本文档来自技高网...
一种用于分布式数据库的连接查询方法及系统

【技术保护点】
一种用于分布式数据库的连接查询方法,其特征在于,包括:在主控节点获取连接计算命令时,其依据该连接计算命令生成多个连接计算子命令并分发到多个相应的非主控节点;非主控节点依据连接计算子命令进行表的连接计算,之后生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件并将其发送给主控节点;主控节点汇总所有结果,并发送给客户端。

【技术特征摘要】
1.一种用于分布式数据库的连接查询方法,其特征在于,包括:在主控节点获取连接计算命令时,选择记录数多的表作为基表,并依据非基表的分布信息向相应的非主控节点发送生成临时文件的请求消息,其依据该连接计算命令生成多个连接计算子命令并分发到多个相应的非主控节点;非主控节点依据连接计算子命令进行表的连接计算,之后生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件,并在压缩后通过FTP协议将其发送给主控节点;主控节点汇总所有结果,并发送给客户端。2.如权利要求1所述的用于分布式数据库的连接查询方法,其特征在于,所述方法具体包括:主控节点进一步地依据基表的分布信息向相应的非主控节点发送依据所述连接计算命令而生成的连接计算子命令;非主控节点依据所述生成临时文件的请求以及连接计算子命令进行表的连接计算,之后生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件并将其发送给主控节点;主控节点汇总所有结果,并发送给客户端。3.如权利要求1或2所述的用于分布式数据库的连接查询方法,其特征在于,当所述连接计算命令为内连接计算命令时,所述方法具体包括:主控节点选择记录数少的表作为外层循环,并选择记录数多的表作为基表;主控节点依据非基表的分布信息,向相应的非主控节点发送生成临时文件的请求消息;主控节点依据基表的分布信息,向相应的非主控节点发送内连接计算子命令;同时执行本主控节点的内连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件;非主控节点依据内连接计算子命令进行表的内连接计算,之后生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件并将其发送给主控节点;主控节点汇总从非主控节点获取的临时文件以及本地的临时文件,并将汇总结果发送给客户端。4.如权利要求3所述的用于分布式数据库的连接查询方法,其特征在于,非主控节点依据内连接计算子命令进行表的连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件的步骤包括:非主控节点选择记录数少的表作为外层循环;非主控节点选择记录数多的表作为基表;非主控节点依据内连接计算子命令进行表的内连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件。5.如权利要求3所述的用于分布式数据库的连接查询方法,其特征在于,主控节点汇总从非主控节点获取的临时文件以及本地的临时文件并将汇总结果发送给客户端之后,还包括:主控节点根据非基表的分布信息,向相应非主控节点发送删除临时文件请求消息;非主控节点响应所述请求并删除存储于本地的临时文件。6.如权利要求1或2所述的用于分布式数据库的连接查询方法,其特征在于,当所述连接计算命令为左外连接、右外连接或全连接计算命令时,所述方法具体包括:主控节点选择记录数多的表作为基表;主控节点依据非基表的分布信息,向相应的非主控节点发送生成临时文件的请求消息;主控节点依据基表的分布信息,向相应的非主控节点发送左外连接、右外连接或全连接计算子命令;并依据基表的选择情况判断是否进行二次连接操作:当进行二次连接操作时,主控节点首先进行内连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件,之后进行左外连接、右外连接或全连接计算;非主控节点依据获取的生成临时文件的请求消息,选择记录数多的表作为基表,并进行内连接计算并生成以连接字段为识别键KEY创建索引的具有B树结构的临时文件,之后进行左外连接、右外连接或全连接计算,并将计算结果发送至主控节点;主控节点汇总所有节点的计算结果之后发送给客户端;或,当不进行二次连接操作时,主控节点对表进行相应的左外连接、右外连接或全连接计算;非主控节点依据获取的生成临时文件的请求消息,选择记录数多的表作为基表,并对表进行左外连接、右外连接或全连接计算,并将计算结果发送至主控节点...

【专利技术属性】
技术研发人员:胡习林李世亮常二鹏
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1