一种大量数据的存取方法及系统的制作方法_2

文档序号:9326902阅读:来源:国知局
cle表中现在有5000w条数据,此时需要在这个表中增加(insert) —条新的数据,insert完毕后,数据库会针对这张表重新建立索引,5000w行数据建立索引的系统开销还是不容忽视的。但是反过来,假如将这个表分成100个子表,从article_001 —直到article_100,5000w行数据平均下来,每个子表里边就只有50万行数据,这时向一张只有50w行数据的表(table)中插入(insert) —个新数据后建立索引的时间就会呈数量级的下降,极大地提高了数据库(DB)的运行效率,也提高了数据库(DB)的并发量。当然分表的好处还不止这些,还有诸如写操作的锁操作等,都会带来很多显然的好处。
[0054]综上所述,分库降低了单点机器的负载。分表提高了数据操作的效率,尤其是写(Write)操作的效率。
[0055]本发明所述的大量数据的存取方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
[0056]本发明还提供一种大量数据的存取系统,所述大量数据的存取系统可以实现本发明所述的大量数据的存取方法,但本发明所述的大量数据的存取方法的实现装置包括但不限于本实施例列举的大量数据的存取系统的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。
[0057]参见图3所示,所述大量数据的存取系统100包括:规则设置模块110,拆分存储模块120,或读取模块130。
[0058]所述规则设置模块110设置数据路由规则。
[0059]进一步,参见图4所示,所述规则设置模块110包括:读写分离规则设置单元111,分库分表规则设置单元112。所述读写分离规则设置单元111以读写分离的方式设置数据的路由规则。所述分库分表规则设置单元112以分库分表的方式设置数据的路由规则。
[0060]所述拆分存储模块120与所述规则设置模块110相连,根据所述路由规则对数据库中存储的大量数据进行拆分存储。
[0061]进一步,参见图5所示,所述拆分存储模块120包括:读库复制单元121,写库复制单元122,分库复制单元123,分表复制单元124,路由规则记录单元125。
[0062]所述读库复制单元121与所述读写分离规则设置单元111相连,按照原有数据库拆分复制出一个读库。
[0063]所述写库复制单元122与所述读写分离规则设置单元111相连,按照原有数据库拆分复制出一个写库。
[0064]所述分库复制单元123与所述分库分表规则设置单元112相连,在原有数据库中选择至少I张表进行拆分,将被选择的表复制出N个库;N为大于等于I的正整数。本发明通过一系列的切分规则(即路由规则)可以将数据分布到不同的数据库(DB)服务器上,通过路由规则路由访问特定的数据库,这样一来每次访问面对的就不是单台数据库服务器了,而是N台数据库服务器,这样就可以降低单台机器的负载压力。
[0065]所述分表复制单元124与所述分库复制单元112相连,将每个库拆分出M张表;M为大于等于1的正整数。本发明还通过一系列的切分规则,将数据分布到一个数据库的不同表中,比如将article分为article_001,article_002等子表,若干个子表水平拼合又组成了逻辑上一个完整的article表,这样做的目的其实也是很简单的。举个例子说明,比如article表中现在有5000w条数据,此时需要在这个表中增加(insert) —条新的数据,insert完毕后,数据库会针对这张表重新建立索引,5000w行数据建立索引的系统开销还是不容忽视的。但是反过来,假如将这个表分成100个子表,从articleJKU —直到article_100,5000w行数据平均下来,每个子表里边就只有50万行数据,这时向一张只有50w行数据的表(table)中插入(insert) —个新数据后建立索引的时间就会呈数量级的下降,极大地提高了数据库(DB)的运行效率,也提高了数据库(DB)的并发量。当然分表的好处还不止这些,还有诸如写操作的锁操作等,都会带来很多显然的好处。综上所述,分库降低了单点机器的负载。分表提高了数据操作的效率,尤其是写(Write)操作的效率。
[0066]所述路由规则记录单元125与所述分库复制单元123和分表复制单元124分别相连,记录拆分后相应的分库分表路由规则。
[0067]所述读取模块130与所述拆分存储模块120相连,利用通用的数据库连接方法和操作方法直接调用接口,根据所述数据路由规则对拆分存储后的数据进行操作或/和查询。
[0068]本发明所述的大量数据的存取系统的保护范围不限于本实施例列举的模块连接结构,凡是根据本发明的原理所做的现有技术的模块增减、模块替换、或模块功能转移所实现的方案都包括在本发明的保护范围内。
[0069]本发明可以实现利用免费数据库MySQL存储大量数据,并且不影响数据的存取性能。通过一系列的切分规则(即路由规则)将大量数据水平分布到不同的DB(数据库)或table(表)中,再通过相应的DB路由或者Table路由规则找到需要查询的具体的DB或者Table,以进行查询(Query)操作。
[0070]本发明既能实现读写分离式存储,也能实现分库分表式存储,在功能上更齐全,在使用上更加简单,而且易扩展,更不需要事先规划数据规模,很容易做二次开发,且成本低。
[0071]综上所述,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0072]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【主权项】
1.一种大量数据的存取方法,其特征在于,所述大量数据的存取方法包括以下步骤: 设置数据路由规则; 根据所述路由规则对数据库中存储的大量数据进行拆分存储。2.根据权利要求1所述的大量数据的存取方法,其特征在于:当所述数据路由规则为读写分离时,则按照原有数据库拆分复制出一个写库和一个读库。3.根据权利要求1所述的大量数据的存取方法,其特征在于:当所述数据路由规则为分库分表时,贝1J在原有数据库中选择至少I张表进行拆分,将被选择的表复制出N个库,每个库拆分出M张表,并记录拆分后相应的路由规则#和M为大于等于I的正整数。4.根据权利要求1所述的大量数据的存取方法,其特征在于:所述数据路由规则包括规则名称、数据真实地址、真实库名、真实表名、记录开始编号、记录结束编号、记录开始时间和记录结束时间。5.根据权利要求2或3所述的大量数据的存取方法,其特征在于,所述大量数据的存取方法还包括: 利用通用的数据库连接方法和操作方法直接调用接口,根据所述数据路由规则对拆分存储后的数据进行操作或/和查询。6.一种大量数据的存取系统,其特征在于,所述大量数据的存取系统包括: 规则设置模块,设置数据路由规则; 拆分存储模块,与所述规则设置模块相连,根据所述路由规则对数据库中存储的大量数据进行拆分存储。7.根据权利要求6所述的大量数据的存取系统,其特征在于,所述大量数据的存取系统还包括: 读取模块,与所述拆分存储模块相连,利用通用的数据库连接方法和操作方法直接调用接口,根据所述数据路由规则对拆分存储后的数据进行操作或/和查询。8.根据权利要求6所述的大量数据的存取系统,其特征在于,所述规则设置模块包括: 读写分离规则设置单元,以读写分离的方式设置数据的路由规则; 分库分表规则设置单元,以分库分表的方式设置数据的路由规则。9.根据权利要求8所述的大量数据的存取系统,其特征在于,所述拆分存储模块包括: 读库复制单元,与所述读写分离规则设置单元相连,按照原有数据库拆分复制出一个读库; 写库复制单元,与所述读写分离规则设置单元相连,按照原有数据库拆分复制出一个写库。10.根据权利要求8所述的大量数据的存取系统,其特征在于,所述拆分存储模块还包括: 分库复制单元,与所述分库分表规则设置单元相连,在原有数据库中选择至少I张表进行拆分,将被选择的表复制出N个库;N为大于等于I的正整数; 分表复制单元,与所述分库复制单元相连,将每个库拆分出M张表;M为大于等于I的正整数; 路由规则记录单元,与所述分库复制单元和分表复制单元分别相连,记录拆分后相应的分库分表路由规则。
【专利摘要】本发明提供一种大量数据的存取方法及系统,所述大量数据的存取方法包括以下步骤:设置数据路由规则;根据所述路由规则对数据库中存储的大量数据进行拆分存储。本发明既能实现读写分离式存储,也能实现分库分表式存储,在功能上更齐全,在使用上更加简单,而且易扩展,更不需要事先规划数据规模,很容易做二次开发,且成本低。
【IPC分类】G06F17/30
【公开号】CN105045816
【申请号】CN201510359672
【发明人】邱光明
【申请人】上海斐讯数据通信技术有限公司
【公开日】2015年11月11日
【申请日】2015年6月26日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1