[发明专利]实现自适应垂直划分的关系型数据库的方法及系统有效
申请号: | 201110069355.2 | 申请日: | 2011-03-22 |
公开(公告)号: | CN102156714A | 公开(公告)日: | 2011-08-17 |
发明(设计)人: | 曾春;邢春晓;张勇;李超;白立宏;李毅 | 申请(专利权)人: | 清华大学;广东环天电子技术发展有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 100084 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 自适应 垂直 划分 关系 数据库 方法 系统 | ||
技术领域
本发明涉及关系型数据库领域,具体涉及一种实现自适应垂直划分的关系型数据库的方法及系统。
背景技术
传统的关系型数据库系统都是基于行存储,记录的数据存放在相同数据块内,这种方式非常适合于读写操作,满足短事务频繁的应用场景。缺点是可能会读取额外的列,复杂查询缓慢,索引开销较大,系统维护复杂,需要不断进行系统优化。而基于列存储的数据库系统(简称列数据库)的特点是将记录的列分开存储,然后利用连接数据来重构记录。列存储的设计带来很多优点,比如可以对同列数据进行数据压缩和索引优化处理等,这种方式极大地优化了读操作,满足复杂查询的应用场景,系统维护简单。缺点是数据更新性能较低,不适合更新事务频繁的应用场景。
中国专利申请(公开号CN101751406A,公开日为2010年6月23日)提出了一种实现基于列存储的关系型数据库的方法及装置,该专利申请提出了一种新的列存储方法,记录的列分开存储,在值数据块中存放列值和记录号,列值排序存储,在连接数据块中存放记录号和值数据块序列号,记录号排序存储,在数据插入时,尽管列值的位置会发生变化,只要它仍然在同一个值数据块中,连接数据块就不需要更新,图1是该专利描述的列存储示例图。这种方法有三个问题,第一个问题是所有列都是分开存储,尽管能对所有列值排序并建索引,但在重构记录时会影响性能;第二个问题是存储值数据块的序列号尽管能缓解列存储的更新问题,但影响了读操作的性能,由于只存储了值数据块的序列号,在查询列值的时候还需要进行二分查找;第三个问题是没有考虑表数据的分区与分布处理,影响了系统的并行查询能力和可扩展性。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提供一种能够提高存储结构合理性,能实现并行查询处理并可提高可扩展性的关系型数据库的方法及系统。
(二)技术方案
为解决上述技术问题,本发明提供了一种实现自适应垂直划分的关系型数据库的方法,包括以下步骤:
S1、对于一个表,先基于列存储结构不断收集并统计用户查询所涉及的相关列出现的次数,并基于预设时间窗口中的历史数据计算相关列出现次数的阈值,然后导出大于所述阈值的相关列进行垂直划分,并得到垂直划分的相关列集合;
S2、基于垂直划分的相关列集合建立连接数据;
S3、基于所述垂直划分的相关列集合,采用预设策略将表的不同相关列分配到不同的分区上,从而实现查询的并行执行。
其中,步骤S1中,基于预设时间窗口中的历史数据计算相关列出现次数的阈值具体为利用下式计算所述阈值:
阈值=(1-w)×Countmax+w×Countmin
其中,w为计划导出的相关列的比例,Countmax表示相关列出现的最大次数,Countmin表示相关列出现的最小次数。
步骤S1中,在计算阈值之后还包括判断初始的垂直划分的相关列集合是否为空的步骤,如果初始的垂直划分的相关列集合为空,则直接导出大于阈值的相关列进行垂直划分;否则先合并现有垂直划分的相关列集合中的相关列,并折算在合并时相关列出现的次数,在得到在合并时相关列出现的次数后,再导出大于阈值的相关列进行垂直划分。
进一步,利用下式计算在合并时相关列出现的次数:
相关列出现的次数=Countold×d+Countnew
其中,Countold为相关列出现的现有次数,Countnew为新出现的次数,d为折算系数。
其中,步骤S1中,在得到垂直划分的相关列集合的过程中,定时清除出现次数少于一定值的相关列。
在步骤S1之前还包括建立所述列存储结构的步骤,在建立所述列存储结构时,将所记录的列分开存储,若列值的属性一致则将列值排序存储,且将表的记录存储在分区中,每个分区中存储有多个表段,每个表段中存放的记录的数量有一个上限。
其中,步骤S2中,在建立连接数据时不仅存储值数据块序列号,还存储列值在所述值数据块中排序的位置。
本发明还提供一种基于所述的方法建立的关系型数据库管理系统,包括:
列存储管理器,用于实现记录的列存储机制;
信息采集器,用于采集用户查询所涉及的相关列出现的次数和时间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学;广东环天电子技术发展有限公司,未经清华大学;广东环天电子技术发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110069355.2/2.html,转载请声明来源钻瓜专利网。