CN109918373A - 数据存储方法、装置、服务器和存储介质 - Google Patents
数据存储方法、装置、服务器和存储介质 Download PDFInfo
- Publication number
- CN109918373A CN109918373A CN201910107796.3A CN201910107796A CN109918373A CN 109918373 A CN109918373 A CN 109918373A CN 201910107796 A CN201910107796 A CN 201910107796A CN 109918373 A CN109918373 A CN 109918373A
- Authority
- CN
- China
- Prior art keywords
- field
- storage
- data record
- replacement
- mutilation
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据存储方法、装置、服务器和存储介质。通过获取待存储的原始数据记录,提取所述原始数据记录内的至少一个待变字段;基于各所述待变字段进行存储变换,生成与待变字段对应的替换字段;采用各所述替换字段替换所述原始数据记录内对应的待变字段,形成目标数据记录并存储。本发明实施例提供的数据存储方法,可缩减数据记录长度,能实现超长数据记录的常规数据页存储。
Description
技术领域
本发明实施例涉及数据存储技术领域,尤其涉及一种数据存储方法、装置、服务器和存储介质。
背景技术
随着数字化时代的到来,人们的衣食住行无时无刻不在产生着数据,需要存储的数据爆炸性增长,因此如何将数据准确存储当前时代的重要问题。
当前数据库通常以数据页为最小单位进行存储,一个数据页内可以存储多条记录,但一条记录不允许跨页存储,因此当一条记录所需的存储空间大于数据页的存储空间时,通常无法有效存储该条数据。
发明内容
本发明提供一种数据存储方法、装置、服务器和存储介质,以实现超长数据记录的有效存储。
第一方面,本发明实施例提供了一种数据存储方法,该方法包括:
获取待存储的原始数据记录,提取所述原始数据记录内的至少一个待变字段;
基于各所述待变字段进行存储变换,生成与待变字段对应的替换字段;
采用各所述替换字段替换所述原始数据记录内对应的待变字段,形成目标数据记录并存储。
第二方面,本发明实施例还提供了一种数据存储装置,该装置包括:
记录获取模块,用于获取待存储的原始数据记录,提取所述原始数据记录内的至少一个待变字段;
替换字段生成模块,用于基于各所述待变字段进行存储变换,生成与待变字段对应的替换字段;
目标记录生成模块,用于采用各所述替换字段替换所述原始数据记录内对应的待变字段,形成目标数据记录并存储。
第三方面,本发明实施例还提供了一种服务器,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的数据存储方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的数据存储方法。
本发明实施例通过获取待存储的原始数据记录,提取所述原始数据记录内的至少一个待变字段,基于各待变字段进行存储变换,生成与待变字段对应的替换字段;使用替换字段替换所述原始数据记录内对应的待变字段,形成目标数据记录并将目标数据记录存储,解决了超长数据记录无法存储到常规数据页中的问题,可缩减数据记录长度,减少数据记录存储空间。
附图说明
图1是本发明实施例一提供的一种数据存储方法的步骤流程图;
图2是本发明实施例二提供的一种数据存储方法的步骤流程图;
图3是本发明实施例三提供的一种数据存储装置的结构示意图;
图4是本发明实施例四提供的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种数据存储方法的步骤流程图,本实施例可适用于超长数据记录存储的情况,该方法可以由数据存储装置来执行,参见图1,本发明实施例提供的数据存储方法,具体包括如下步骤:
步骤101、获取待存储的原始数据记录,提取所述原始数据记录内的至少一个待变字段。
其中,原始数据记录可以是数据库中需要存储的数据记录,原始数据记录可以由多个字段共同组成,待变字段可以是长度随存储信息的长度改变而改变的字段,可以包括变长字符类型字段和变长二进制类型字段等,还可以是存储长度超过一定阈值的字段。
具体的,可以获取准备存储的原始数据记录,可以提取原始数据记录中的变长字符类型和变长二进制类型的字段的信息,例如可以在原始数据记录中查找数据类型标记为变长字符类型和变长二进制类型的数据标记,获取对应数据标记的字段内的信息。
步骤102、基于各所述待变字段进行存储变换,生成与待变字段对应的替换字段。
其中,存储变换可以是将数据信息变换为数据信息存储地址的变换操作,存储变换可以减小原始数据记录的存储长度,替换字段可以是用于替换待变字段的数据字段,替换字段可以是存储对应待变字段数据信息的存储地址的数据字段。
具体的,可以对获取到的待变字段中的数据信息变换为数据信息的存储地址,可以将存储地址替换数据信息后的待变字段作为替换字段,对原始数据记录中提取到的所有待变字段,可以对全部待变字段进行存储变换以减小原始数据记录的存储长度,还可以根据预设的规则对其中一部分的待变字段进行存储变换,以减小原始数据记录的存储长度。
示例性的,存储变换可以是将待变字段变为大字段,也就是将待变字段中的数据信息存储到大字段数据页中,获取到数据信息的存储位置,可以使用存储位置替换数据信息以生成大字段,待变字段变为大字段的过程可以是存储变换的过程,可以将生成的大字段作为与待变字段对应的替换字段。
步骤103、采用各所述替换字段替换所述原始数据记录内对应的待变字段,形成目标数据记录并存储。其中,目标数据记录可以是存储长度符合常规数据页存储要求的数据记录,目标数据记录可以经过替换字段替换后的原始数据记录。
具体的,可以使用生成的替换字段替换掉原始数据记录中待变字段,替换字段和待变字段可以一一对应,可以将使用替换字段替换后的原始数据记录作为目标数据记录,可以将生成的目标数据记录存储到数据库中的数据页中。
本发明实施例的技术方案,通过获取待存储的原始数据记录,获取原始数据记录中的待变字段,对待变字段进行存储变换,生成对应待变字段的替换字段,使用生成的替换字段替换原始数据记录中对应的待变字段,生成目标数据记录并存储,解决了由于数据记录过长无法有效存储于常规数据页的问题,可缩短数据记录的存储长度,减小数据记录所需的存储空间。
为提高数据记录的存储效率,在上述实施例的基础上,所述基于各所述待变字段进行存储变换,生成与待变字段对应的替换字段,包括:根据预设的存储变换规则,从各所述待变字段中确定待替换字段,并生成所述待替换字段的替换字段。
其中,存储变换规则可以是对待变字段进行存储变换的规则,可以包括待变字段按照存储长度从大到小的顺序进行存储变换,或者按照待变字段在原始数据记录中的顺序,还可以包括待变字段按照固定顺序依次进行存储变换,当原始数据记录中的存储长度与经过存储变换的待变字段的存储长度之差小于常规数据页存储长度时,停止对待变字段进行存储变换。
具体的,可以先对待变字段根据在原始数据记录中的出现位置或者存储长度进行排序,依次对待变字段进行存储变换,可以不需要将所有的待变字段全部进行存储变换,当经过存储变换的待变字段和原始数据记录的存储长度之差小于固定阈值时可以停止对待变字段进行存储变换以生成与待变字段对应的替换字段,可以理解的是,对存储变换规则还可以是对全部待变字段进行存储变换生成对应的替换字段。根据预设的存储变换规则,可以无需对所有待变字段进行存储变换,当满足一定条件时,就可以停止对待变字段的存储变换,提高了数据记录存储的效率。
实施例二
图2是本发明实施例二提供的一种数据存储方法的步骤流程图。本实施例是在上述实施例的基础上提供的一种方案。参见图2,本实施例提供的数据存储方法包括:
步骤201、获取原始数据记录中各字段的存储长度。
其中,存储长度可以是数据记录中各字段的数据信息存储空间占据的长度,可以根据各字段数据信息的存储类型确定,例如,一个字段的数据信息存储类型是整数类型,那么该字段的存储长度可以是4字节。
具体的,可以根据数据记录中各字段的存储类型获取各字段的存储长度,还可以获取数据记录中各字段存储的数据信息,通过数据信息直接确定各字段的存储长度。
步骤202、将各所述存储长度与变换阈值进行对比,如果所述存储长度大于所述变换阈值,则将所述存储长度对应的字段作为待变字段。
其中,变换阈值可以是进行存储变换的临界值,当存储长度大于变换阈值时,可以通过存储变换减少字段的存储长度,示例性的,变换阈值可以是大字段存储信息的长度,具体可以是12字节。
具体的,可以将获取到的各字段的存储长度与变换阈值进行比较,当字段的存储长度大于变换阈值时,可以将该字段作为待变字段,可以采用标记的方法将该字段标记为待变字段,也可以采用收集的方式,收集待变字段的数据信息并与其在数据记录中的位置关联存储,存储后的字段为待变字段。
示例性的,一条待存储数据记录由两个字段A和B组成,变换阈值为12字节,A的存储长度为10字节,B的存储长度为2000字节,10小于12,那么字段A不是待变字段,2000大于12,那么字段B为待变字段,可以收集字段B的数据信息,将字段B作为待变字段。
步骤203、确定原始数据记录的总数据长度及各所述待变字段的存储长度,并记所述总数据长度为当前总长度。
其中,原始数据记录的总长度可以是原始数据记录占据存储空间的长度,当前总长度可以是待变字段经过存储变换后的数据记录的总长度,当前总长度可以随着待变字段进行存储变换而改变,当前总长度的初始值可以等于原始数据记录的总长度。
具体的,可以确定原始数据记录的占据存储空间的总长度和被标记为待变字段的各字段对应的存储长度,可以将原始数据记录的总长度作为当前总长度。
进一步的,可以在获取到总数据长度和各待变字段的存储长度后,可以先使用总数据长度与各待变字段的存储长度的差值,判断该差值是否大于数据页长度,如果是,那么停止继续进行本实施例数据存储方法,进行数据记录超长报错,如果否,那么可以继续执行步骤204。
步骤204、基于各所述存储长度由大到小对相应的待变字段进行排序,获得待变字段的排序集合。
其中,排序集合可以具有排列顺序的待变字段的集合,排序集合中的待变字段可以按照在原始数据记录中的出现顺序排序,也可以根据待变字段的存储长度进行排序。
具体的,可以按照存储长度的顺序对待变字段进行排序,排序顺序可以是存储长度从大到小的顺序,还可以是从小到大的顺序,可以理解的是,根据存储长度对待变字段排序的方式并不进行限制,将排序后的待变字段集合作为排序集合。
示例性的,可以将收集的待变字段,按照存储长度由大到小排序,当长度相等时可以按在原始数据记录中的先后顺序进行排序,将排序后的待变字段作为排序集合。
步骤205、依次从所述排序集合中选取一个待变字段作为当前字段。
具体的,可以按照排序集合中的待变字段的顺序依次选取待变字段,可以将选取到的待变字段作为当前字段。
可以理解的是,当排序集合中的所有待变字段均被选择后,当前总长度却仍然大于数据页长度,此时无法将原始数据记录存储,停止执行本实施例的数据存储方法,对原始数据记录进行超长报错。
步骤206、如果当前总长度大于数据页长度,则执行步骤2061-2062;否则,结束当前字段的选取及待替换字段的确定操作,继续执行步骤207。
其中,数据页长度可以是数据库存储的最小存储单元存储空间的长度,数据页可以数据库存储的常规数据页,也就是不允许跨页存储的数据页。
具体的,可以将当前总长度与数据页长度进行对比,如果当前总长度大于数据页长度,那么继续执行步骤2061-2062,如果当前总长度小于或等于数据页长度,那么停止当前字段的选取和待替换字段的确定操作,继续执行步骤207。
步骤2061、将所述当前字段确定为待替换字段。
其中,待替换字段可以是在排序集合中被选定的当前字段,也就是还未进行存储变换的字段。
具体的,可以将排序集合中被选出的当前字段作为待替换字段。
步骤2062、根据所述当前字段的存储长度及相应替换字段的存储长度,更新所述当前总长度,获得新的当前总长度,并返回执行当前字段的选取操作。
其中,替换字段的存储长度可以是待替换字段进行存储变换后的字段对应的存储长度,替换字段的存储长度可以是一个定值,在待替换字段未进行存储变换前也可以获知,例如,替换字段的存储长度的值可以是变换阈值。
具体的,可以根据当前字段的存储长度和对应的替换字段的存储长度对当前总长度进行更新,更新的方法可以先计算当前字段的存储长度与对应的替换字段存储长度的差值,在原本当前总长度的值的基础上减去计算得到的差值作为新的当前总长度,可以在确定新的当前总长度后返回步骤205继续在排序集合中选取当前字段。在执行步骤2062后,需要循环执行步骤205,直到当前总长度小于和/或等于数据页长度为止。
步骤207、获取所述待替换字段内的数据信息。
其中,数据信息可以为待替换字段内存储的数据,可以是二进制或十六进制的字符串数据。
具体的,可以获取所有确定为待替换字段中存储的二进制或十六进制的字符串数据。
步骤208、将所述数据信息存储到预设存储区域,并获取对应的存储地址。
其中,预设存储区域可以是用于存储待替换字段内数据信息的存储区域,例如,可以是数据库中的大字段数据页,存储地址可以是存储数据信息的位置信息,可以包括文件号、数据页号、偏移量和数据长度等信息。
具体的,可以将获取到的待替换字段内的数据信息存储到预设的存储区域内,并可以获取对应数据信息的存储地址,示例性的,一个待替换字段长5000字节,该替换字段的数据信息存储到大字段数据页中,并获取存储该替换字段数据信息的文件号、数据页号、偏移量和数据长度等信息,将文件号、数据页号、偏移量和数据长度等信息作为待替换字段数据信息对应的存储地址。
步骤209、将所述存储地址作为替换信息替换所述待替换字段内的数据信息,形成所述待替换字段的替换字段。
具体的,可以使用获取到的数据信息对应的存储地址替换对应待替换字段内的数据信息,将替换后的待替换字段作为替换字段。
步骤210、采用各所述替换字段替换所述原始数据记录内对应的待变字段,形成目标数据记录并存储。
其中,目标数据记录可以是存储长度小于或等于数据页长度的数据记录,可以包括存储变换字段的原始数据记录。
具体的,可以使用生成的替换字段替换掉原始数据记录内部对应的待变字段,将使用替换字段替换后的原始数据记录作为目标数据记录,可以将生成目标数据记录存储到数据页中。进一步的,可以在替换字段替换对应的待变字段时,可以在目标数据记录中对该替换字段进行标记,标记的方式可以是在目标数据记录头部该字段生成对应的标记位。
步骤211、基于存储的所述目标数据记录,获得原始数据记录。
具体的,还可以获取存储在数据页中的目标数据记录,获取其中的替换字段,将替换字段还原为待变字段,获得原始数据记录。
示例性的,一个数据库表的定义为create table t(id int,c1varchar(4000),c2varchar(5000),c3varchar(4000),c4varchar(4000));
数据库表t中插入一条数据记录为insert into t values(1,repeat('a',2000),r epeat('b',5000),repeat('c',3000),repeat('d',4000));可以先获取该数据记录各字段的存储长度id:4字节,c1:2000字节,c2:5000字节,c3:3000字节,c4:4000字节,数据记录总长度约为14000字节。假定变换阈值可以为12字节,对超过变换阈值12字节的c1、c2、c3和c4字段进行存储变换,先获取c1、c2、c3和c4字段并按照存储长度按照从长到短进行排列,长度相等的字段按照在数据记录中的先后顺序进行排列,并记录到数组data_arr中,此处收集的是长度比数据变化后大字段存储信息长度长的字段,因为长度比大字段存储信息长度短的话变化无意义。例如,某变长字符字段A,B待存储数据字节长度分别为10,2000,大字段的存储信息为12字节,因为10<12,2000>12,因此10字节的字段A不用搜集,2000字节的字段B需要搜集。c1为待变字段可以进行存储变换,记录到data_arr[0],c2为待变字段可以进行存储变换,记录到data_arr中,由于c2的长度比c1长,因此c2排列在c1之前,数组data_arr中数据为data_arr[0]=c2,data_arr[1]=c1,c3为待变字段可以进行存储变换,记录到data_arr中,并进行排列得到data_arr中的数据为data_arr[0]=c2,data_arr[1]=c3,data_arr[2]=c1,c4为待变字段可以进行存储变换,记录到data_arr中,并进行排列得到data_arr中的最终数据为data_arr[0]=c2,data_arr[1]=c4,data_arr[2]=c3,data_arr[4]=c1,可以对收集到的数据按顺序进行存储变化并替换原有的数据信息为大字段数据的存储地址,a)把data_arr[0]即c2的数据变化为大字段数据存储在大字段数据页上,新建一个大字段数据页(假设文件号1,页号0,偏移0),写入c2的数据5000字节的字符b,由于每个大字段数据页的大小也是8192字节,因此需要一页即可存储字段数据,不存在跨页的情况。把大字段存储地址信息反填回c2字段,并设置标记标识c2字段进行了数据变化。重新计算该行数据记录的存储长度,由于c2已经被变化,c2的数据长度由原来的5000字节缩减为大字段存储信息长度(fileno(2字节)+pageno(4字节)+offset(2字节)+data_len(2字节)=12字节),因此记录的物理长度已由原先的大约14000字节缩减为了大约9000字节,依然超过常规数据也的存储上限。大字段存储信息长度也就是变换阈值,可以根据数据页大小,数据偏移等大小选取不同而有所不同,本发明不做限定,本发明的大字段存储信息长度以12为例。把data_arr[1]即c4的数据变化为大字段数据存储在大字段数据页上,新建一个大字段数据页(假设文件号2,页号0,偏移0),写入c4的数据4000字节的字符d,由于大字段数据页的大小为8192个字节,因此一页即可存储字段数据,不存在跨页。把大字段存储地址信息反填回c4字段,并标记标识c4字段进行了数据变化。重新计算该数据记录的存储长度,由于c4已经被变化,c4的数据长度由原来的4000字节缩减为大字段存储信息长度(fil eno(2字节)+pageno(4字节)+offset(2字节)+data_len(2字节)),因此记录的物理长度已由原先的大约9000字节缩减为了大约5000字节,已经符合了在常规数据页存储的长度限制,因此终止存储变换。按照存储变换后的各字段数据进行以数据记录的内存格式的填充,分别对应填写各字段的长度,变化标记及数据后写入磁盘的数据页。当需要读取数据记录时,依次读取字段上的变化标记,如果该标记被设置了,则需要根据读取到的字段内容(大字段存储信息),到指定的大字段数据页上读取原始数据进行对现有大字段存储信息进行替换。
本发明实施例提供的方法,通过获取原始数据记录的各字段中存储长度超过变换阈值的字段作为待变字段,对待变字段按照存储长度从大到小排序,依次确定为待替换字段,当前总长度小于数据页长度时,停止确定待替换字段,将已经确定的待替换字段的数据信息替换为数据信息在预设区域内的存储地址,以生成替换字段,使用替换字段替换原始数据字段内的待变字段以生成目标数据字段并存储,通过对目标数据记录进行操作获取原始数据记录,实现原始数据记录的读取,可以将超长的数据字段存储在常规数据页内,可提高超长数据字段的有效存储率,并减少存储时间。
可选的,在上述实施例的基础上,基于存储的所述目标数据记录获得的原始数据记录,包括:
提取所述目标数据记录中的各替换字段,并获取各所述替换字段中包含的存储地址;根据各所述存储地址,获取相应替换字段对应的替换数据信息;采用所述替换数据信息替换相应替换字段内的存储地址,形成对应的待变字段;采用各所述待变字段替换所述目标数据记录中对应的替换字段,获得原始数据记录。
具体的,可以根据目标数据记录中的标记确定各替换字段,标记可以是在替换字段替换待变字段生成目标数据记录时生成,提取各替换字段内存储的存储地址,根据存储地址在预设存储区域内获取替换数据信息,使用替换数据信息反填回对应的替换字段生成待变字段,使用各待变字段替换目标数据记录中的替换字段,获取到原始数据记录,以实现原始数据记录的读取。
实施例三
图3是本发明实施例三提供的一种数据存储装置的结构示意图。本发明实施例提供的数据存储装置可执行任意实施例所提供的数据存储方法,具备执行方法相应的功能模块和有益效果。参见图3,本发明实施例提供的数据存储装置包括:记录获取模块301、替换字段生成模块302和目标记录生成模块303。
其中,记录获取模块301,用于获取待存储的原始数据记录,提取所述原始数据记录内的至少一个待变字段。
替换字段生成模块302,用于基于各所述待变字段进行存储变换,生成与待变字段对应的替换字段。
目标记录生成模块303,用于采用各所述替换字段替换所述原始数据记录内对应的待变字段,形成目标数据记录并存储。
本发明实施例,通过记录获取模块获取带存储的原始数据记录,提取其中的待变字段,替换字段生成模块对待变字段进行存储变换,生成对应待变字段的替换字段,目标记录生成模块使用生成的替换字段替换原始数据记录中对应的待变字段,生成目标数据记录并存储,解决了由于数据记录超过常规数据页长度无法有效存储的问题,可缩短数据记录的存储长度,实现超长数据记录的存储。
可选的,在上述实施例的基础上,所述记录获取模块,包括:存储长度获取单元,用于获取所述原始数据记录中各字段的存储长度。
待变字段确定单元,用于将各所述存储长度与变换阈值进行对比,如果所述存储长度大于所述变换阈值,则将所述存储长度对应的字段作为待变字段。
可选的,在上述实施例的基础上,所述替换字段生成模块,包括:
替换字段生成子模块,用于根据预设的存储变换规则,从各所述待变字段中确定待替换字段,并生成所述待替换字段的替换字段。
可选的,替换字段生成子模块,包括:
初始参数单元,用于确定原始数据记录的总数据长度及各所述待变字段的存储长度,并记所述总数据长度为当前总长度。
排序单元,用于基于各所述存储长度由大到小对相应的待变字段进行排序,获得待变字段的排序集合。
字段选取单元,用于依次从所述排序集合中选取一个待变字段作为当前字段。
判断单元,用于如果当前总长度大于数据页长度,则将所述当前字段确定为待替换字段,并生成所述待替换字段的替换字段;否则,结束当前字段的选取及待替换字段的确定操作。
循环单元,用于根据所述当前字段的存储长度及相应替换字段的存储长度,更新所述当前总长度,获得新的当前总长度,并返回执行当前字段的选取操作。
可选的,所述替换字段生成子模块,包括:
数据获取单元,用于获取所述待替换字段内的数据信息。
数据存储单元,用于将所述数据信息存储到预设存储区域,并获取对应的存储地址。
替换字段确定单元,用于将所述存储地址作为替换信息替换所述待替换字段内的数据信息,形成所述待替换字段的替换字段。
可选的,所述装置,还包括:
读取模块,用于基于存储的所述目标数据记录,获得原始数据记录。
可选的,读取模块包括:
地址获取单元,用于提取所述目标数据记录中的各替换字段,并获取各所述替换字段中包含的存储地址。
替换数据获取单元,用于根据各所述存储地址,获取相应替换字段对应的替换数据信息。
数据回填单元,用于采用所述替换数据信息替换相应替换字段内的存储地址,形成对应的待变字段。
记录读取单元,用于采用各所述待变字段替换所述目标数据记录中对应的替换字段,获得原始数据记录。
实施例四
图4是本发明实施例四提供的一种服务器的结构示意图。如图4所示,该服务器包括处理器70、存储器71、输入装置72和输出装置73;服务器中处理器70的数量可以是一个或多个,图4中以一个处理器70为例;服务器中的处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据存储方法对应的程序指令/模块(例如,数据存储装置中的记录获取模块301、替换字段生成模块302和目标记录生成模块303)。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的数据存储方法。
存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置72可用于接收输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据存储方法,该方法包括:
获取待存储的原始数据记录,提取所述原始数据记录内的至少一个待变字段;
基于各所述待变字段进行存储变换,生成与待变字段对应的替换字段;
采用各所述替换字段替换所述原始数据记录内对应的待变字段,形成目标数据记录并存储。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据存储方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据存储装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
获取待存储的原始数据记录,提取所述原始数据记录内的至少一个待变字段;
基于各所述待变字段进行存储变换,生成与待变字段对应的替换字段;
采用各所述替换字段替换所述原始数据记录内对应的待变字段,形成目标数据记录并存储。
2.根据权利要求1所述的方法,其特征在于,所述提取所述原始数据记录内的至少一个待变字段,包括:
获取所述原始数据记录中各字段的存储长度;
将各所述存储长度与变换阈值进行对比,如果所述存储长度大于所述变换阈值,则将所述存储长度对应的字段作为待变字段。
3.根据权利要求1所述的方法,其特征在于,所述基于各所述待变字段进行存储变换,生成与待变字段对应的替换字段,包括:
根据预设的存储变换规则,从各所述待变字段中确定待替换字段,并生成所述待替换字段的替换字段。
4.根据权利要求1所述的方法,其特征在于,所述根据预设的存储变换规则,从各所述待变字段中确定待替换字段,并生成所述待替换字段的替换字段,包括:
确定原始数据记录的总数据长度及各所述待变字段的存储长度,并记所述总数据长度为当前总长度;
基于各所述存储长度由大到小对相应的待变字段进行排序,获得待变字段的排序集合;
依次从所述排序集合中选取一个待变字段作为当前字段;
如果当前总长度大于数据页长度,则将所述当前字段确定为待替换字段,并生成所述待替换字段的替换字段;否则,结束当前字段的选取及待替换字段的确定操作;
根据所述当前字段的存储长度及相应替换字段的存储长度,更新所述当前总长度,获得新的当前总长度,并返回执行当前字段的选取操作。
5.根据权利要求3或4所述的方法,其特征在于,所述生成所述待替换字段的替换字段,包括:
获取所述待替换字段内的数据信息;
将所述数据信息存储到预设存储区域,并获取对应的存储地址;
将所述存储地址作为替换信息替换所述待替换字段内的数据信息,形成所述待替换字段的替换字段。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
基于存储的所述目标数据记录,获得原始数据记录。
7.根据权利要求6所述的方法,其特征在于,所述基于存储的所述目标数据记录,获得原始数据记录,包括:
提取所述目标数据记录中的各替换字段,并获取各所述替换字段中包含的存储地址;
根据各所述存储地址,获取相应替换字段对应的替换数据信息;
采用所述替换数据信息替换相应替换字段内的存储地址,形成对应的待变字段;
采用各所述待变字段替换所述目标数据记录中对应的替换字段,获得原始数据记录。
8.一种数据存储装置,其特征在于,包括:
记录获取模块,用于获取待存储的原始数据记录,提取所述原始数据记录内的至少一个待变字段;
替换字段生成模块,用于基于各所述待变字段进行存储变换,生成与待变字段对应的替换字段;
目标记录生成模块,用于采用各所述替换字段替换所述原始数据记录内对应的待变字段,形成目标数据记录并存储。
9.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据存储方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910107796.3A CN109918373A (zh) | 2019-02-02 | 2019-02-02 | 数据存储方法、装置、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910107796.3A CN109918373A (zh) | 2019-02-02 | 2019-02-02 | 数据存储方法、装置、服务器和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109918373A true CN109918373A (zh) | 2019-06-21 |
Family
ID=66961478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910107796.3A Pending CN109918373A (zh) | 2019-02-02 | 2019-02-02 | 数据存储方法、装置、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918373A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046074A (zh) * | 2019-12-13 | 2020-04-21 | 北京百度网讯科技有限公司 | 流式数据处理方法、装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430148A (zh) * | 2001-12-31 | 2003-07-16 | 深圳市中兴通讯股份有限公司上海第二研究所 | 嵌入式数据库存储和访问的方法 |
CN102375814A (zh) * | 2010-08-10 | 2012-03-14 | 沈阳新邮通信设备有限公司 | 存储备注信息的装置和方法 |
CN103942114A (zh) * | 2013-01-22 | 2014-07-23 | Lsi公司 | Nvm地址、跨度及长度映射/转换的存储地址空间 |
CN104462141A (zh) * | 2013-09-24 | 2015-03-25 | 中国移动通信集团重庆有限公司 | 一种数据存储与查询的方法、系统及存储引擎装置 |
CN106156301A (zh) * | 2016-06-30 | 2016-11-23 | 上海达梦数据库有限公司 | 一种大字段数据的处理方法及装置 |
-
2019
- 2019-02-02 CN CN201910107796.3A patent/CN109918373A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430148A (zh) * | 2001-12-31 | 2003-07-16 | 深圳市中兴通讯股份有限公司上海第二研究所 | 嵌入式数据库存储和访问的方法 |
CN102375814A (zh) * | 2010-08-10 | 2012-03-14 | 沈阳新邮通信设备有限公司 | 存储备注信息的装置和方法 |
CN103942114A (zh) * | 2013-01-22 | 2014-07-23 | Lsi公司 | Nvm地址、跨度及长度映射/转换的存储地址空间 |
CN104462141A (zh) * | 2013-09-24 | 2015-03-25 | 中国移动通信集团重庆有限公司 | 一种数据存储与查询的方法、系统及存储引擎装置 |
CN106156301A (zh) * | 2016-06-30 | 2016-11-23 | 上海达梦数据库有限公司 | 一种大字段数据的处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
ZHANGYACHEN: "《http://www.codeceo.com/article/how-mysql-stores-large-data.html》", 5 July 2017 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046074A (zh) * | 2019-12-13 | 2020-04-21 | 北京百度网讯科技有限公司 | 流式数据处理方法、装置、设备和介质 |
CN111046074B (zh) * | 2019-12-13 | 2023-09-01 | 北京百度网讯科技有限公司 | 流式数据处理方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509969B (zh) | 数据标注方法及终端 | |
CN107341262B (zh) | 数据库中对象类型列的序列化、反序列化方法及装置 | |
CN102016789B (zh) | 数据处理装置和处理数据的方法 | |
CN108228166A (zh) | 一种基于模板的后端代码生成方法及系统 | |
US8386526B2 (en) | Coupled node tree backup/restore apparatus, backup/restore method, and program | |
CN109857803B (zh) | 数据同步方法、装置、设备、系统及计算机可读存储介质 | |
CN110427884A (zh) | 文档篇章结构识别方法、装置、设备和存储介质 | |
CN109344230A (zh) | 代码库文件生成、代码搜索、联结、优化以及移植方法 | |
CN109783737A (zh) | 信息检索方法、装置、计算机设备及存储介质 | |
CN109067704A (zh) | 一种卫星遥控指令格式设计与编码管理系统及方法 | |
CN107506802A (zh) | 一种基于网格的聚类算法及其装置 | |
CN102110102A (zh) | 数据处理方法及装置、文件识别方法及工具 | |
CN108415708A (zh) | 应用程序安装包大小的处理方法、装置、设备和存储介质 | |
CN112667860A (zh) | 一种子图匹配方法、装置、设备及存储介质 | |
CN105677903A (zh) | 获取数据的方法和装置、计算机设备 | |
CN110175170A (zh) | 数据优化处理方法、装置、计算机设备及存储介质 | |
CN109683881A (zh) | 一种代码格式调整方法及装置 | |
CN110737432A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN109918373A (zh) | 数据存储方法、装置、服务器和存储介质 | |
CN110516220A (zh) | 一种报表数据录入方法、系统及相关设备 | |
US8166043B2 (en) | Bit strings search apparatus, search method, and program | |
CN109614455B (zh) | 一种基于深度学习的地理信息的自动标注方法及装置 | |
CN106055640A (zh) | 缓存的管理方法及系统 | |
CN104932982B (zh) | 一种消息访存的编译方法及相关装置 | |
CN110275895A (zh) | 一种缺失交通数据的填充设备、装置及方法 |
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: 20190621 |