一种数据存储方法及装置的制造方法

文档序号:9375779阅读:214来源:国知局
一种数据存储方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据库系统领域,尤其涉及一种数据存储方法及装置。
【背景技术】
[0002]随着大量移动终端用户进行空中固件升级(FOTA,Firmware Over The Air)升级,FOTA系统产生的数据也随之大量生产,并持久化存储到数据库(如MongoDB数据库)中,当数据库的单表写入的数据量达到千万级别时,持久化写入的性能急剧下降,从而严重影响FOTA系统在大用户量下的持续运行的稳定性,同时,查询相应升级数据耗时也随之急剧上升,严重影响升级数据的统计查询功能。

【发明内容】

[0003]有鉴于此,本发明的主要目的在于提供一种数据存储方法及装置,能解决现有技术中当进行大数据量存储时数据库系统的持久化写入性能下降的问题。
[0004]为达到上述目的,本发明的技术方案是这样实现的:
[0005]本发明提供了一种数据存储方法,以分表的形式存储数据,所述方法还包括:
[0006]检测当前分表所写入的数据量;
[0007]判断所述当前分表所写入的数据量是否超出分表阈值;
[0008]当所述当前分表所写入的数据量超出分表阈值时,生成新的分表,并将待写入的数据写入所述新的分表中。
[0009]上述方案中,优选地,所述生成新的分表,包括:
[0010]生成新的分表的表名;
[0011]更新分表索引表中的关于所述当前分表的索引记录,并初步生成关于所述新的分表的索引记录;
[0012]其中,在分表索引表结构中,至少包含下述信息:
[0013]当前分表表名、开始写入时间、结束写入时间、当前分表数据量、前一分表表名、生成时间。
[0014]上述方案中,优选地,所述检测当前分表所写入的数据量之前,所述方法还包括:
[0015]进行初始化操作。
[0016]上述方案中,优选地,所述进行初始化操作,包括:
[0017]动态配置分表阈值;
[0018]查找是否存在分表索引表;
[0019]如果不存在,创建分表索引表;
[0020]如果存在,在分表索引表中查找是否有满足预设条件的索引记录;
[0021]当有满足预设条件的第一索引记录时,获取第一索引记录中的当前分表表名、开始写入时间、结束写入时间和前一分表表名,并分别设置到当前分表表名变量、当前分表开始写入时间变量、当前分表结束写入时间变量和前一分表表名变量中;查找是否有当前分表表名为前一分表表名的第二索引记录,如果有,获取第二索引记录的开始写入时间和结束写入时间,并设置到前一分表开始写入时间变量和前一分表结束写入时间变量中,触发写数据监测操作,如果没有,触发写数据监测操作;
[0022]当没有满足预设条件的第一索引记录时,生成新的分表的表名;查找是否有生成时间离当前时点最近的第三索引记录,如果有,获取第三索引记录中的开始写入时间和结束写入时间,并设置到前一分表开始写入时间变量和前一分表结束写入时间变量中,将所述当前分表表名设置为新生成的索引记录的前一分表表名,触发写数据监测操作;如果没有,触发写数据监测操作。
[0023]上述方案中,优选地,所述创建分表索引表,包括:
[0024]生成首个分表的表名;
[0025]将所述首个分表的表名设置为首个索引记录的当前分表表名中,触发写数据监测操作。
[0026]本发明还提供了一种数据存储装置,所述装置包括:
[0027]监测单元,用于检测当前分表所写入的数据量;
[0028]判断单元,用于判断所述当前分表所写入的数据量是否超出分表阈值;
[0029]处理单元,用于当所述当前分表所写入的数据量超出分表阈值时,生成新的分表,并将待写入的数据写入所述新的分表中。
[0030]上述方案中,优选地,所述处理单元,还用于:
[0031]生成新的分表的表名;
[0032]更新分表索引表中的关于所述当前分表的索引记录,并初步生成关于所述新的分表的索引记录;
[0033]其中,在分表索引表结构中,至少包含下述信息:
[0034]当前分表表名、开始写入时间、结束写入时间、当前分表数据量、前一分表表名、生成时间。
[0035]上述方案中,优选地,所述装置还包括:
[0036]初始化单元,用于进行初始化操作。
[0037]上述方案中,优选地,所述初始化单元,包括:
[0038]配置子单元,用于动态配置分表阈值;
[0039]查找子单元,用于查找是否存在分表索引表;
[0040]第一初始化子单元,用于当不存在分表索引表时,创建分表索引表;
[0041]第二初始化子单元,用于:
[0042]当存在分表索引表时,在分表索引表中查找是否有满足预设条件的索引记录;
[0043]当有满足预设条件的第一索引记录时,获取第一索引记录中的当前分表表名、开始写入时间、结束写入时间和前一分表表名,并分别设置到当前分表表名变量、当前分表开始写入时间变量、当前分表结束写入时间变量和前一分表表名变量中;查找是否有当前分表表名为前一分表表名的第二索引记录,如果有,获取第二索引记录的开始写入时间和结束写入时间,并设置到前一分表开始写入时间变量和前一分表结束写入时间变量中,触发所述监测单元执行写数据监测操作,如果没有,触发所述监测单元执行写数据监测操作;
[0044]当没有满足预设条件的第一索引记录时,生成新的分表的表名;查找是否有生成时间离当前时点最近的第三索引记录,如果有,获取第三索引记录中的开始写入时间和结束写入时间,并设置到前一分表开始写入时间变量和前一分表结束写入时间变量中,将所述当前分表表名设置为新生成的索引记录的前一分表表名,触发所述监测单元执行写数据监测操作;如果没有,触发所述监测单元执行写数据监测操作。
[0045]上述方案中,优选地,所述第一初始化子单元,还用于:
[0046]生成首个分表的表名;
[0047]将所述首个分表的表名设置为首个索引记录的当前分表表名中,并触发所述监测单元执行写数据监测操作。
[0048]本发明所提供的数据存储方法及装置,检测当前分表所写入的数据量;判断所述当前分表所写入的数据量是否超出分表阈值;当所述当前分表所写入的数据量超出分表阈值时,生成新的分表,并将待写入的数据写入所述新的分表中;如此,解决了现有技术中当进行大数据量存储时数据库系统的持久化写入性能下降的问题,进而也提升数据库系统的统计查询性能。
【附图说明】
[0049]图1为本发明实施例提供的数据存储方法的实现流程示意图;
[0050]图2为本发明实施例提供的分表索引表的结构示意图;
[0051]图3为本发明实施例提供的FOTA系统分表存储数据的流程示意图;
[0052]图4为本发明实施例提供的数据存储装置的结构示意图一;
[0053]图5为本发明实施例提供的数据存储装置的结构示意图二。
【具体实施方式】
[0054]为了能够更加详尽地了解本发明的特点与技术内容,下面结合附图对本发明的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
[0055]实施例一
[0056]图1为本发明实施例提供的数据存储方法的实现流程示意图,所述数据存储方法可应用于数据库系统中,数据库系统以分表的形式存储数据,如图1所示,所述数据存储方法主要包括以下步骤:
[0057]步骤101:检测当前分表所写入的数据量。
[0058]优选地,所述检测当前分表所写入的数据量,可以包括:
[0059]周期性检测当前分表所写入的数据量。
[0060]这里,所述周期可以根据实际情况进行设定。
[0061]优选地,所述周期可以以小时为单位、或以分钟为单位、或以秒为单位、或以毫秒为单位等。
[0062]步骤102:判断所述当前分表所写入的数据量是否超出分表阈值。
[0063]这里,所述分表阈值用于表不每一个分表允许存储
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1