CN109597571B - 数据存储方法、数据读取方法、装置和计算机设备 - Google Patents
数据存储方法、数据读取方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN109597571B CN109597571B CN201811360578.2A CN201811360578A CN109597571B CN 109597571 B CN109597571 B CN 109597571B CN 201811360578 A CN201811360578 A CN 201811360578A CN 109597571 B CN109597571 B CN 109597571B
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- segment
- unit
- bitmap
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
Abstract
本申请涉及一种数据存储方法,包括:将目标数据划分得到多个数据段;当数据段中的有效数据单元的数量小于或等于存储数量阈值时,生成数据段中每个有效数据单元的单位存储数据,单位存储数据包括相应有效数据单元的位图索引和位图;将每个单位存储数据,按照位图索引顺序连续存储至相应数据段的存储段中,节约了存储空间。本申请还涉及一种数据读取方法,包括:获取目标单位存储数据所在存储段的存储段标识;读取存储段标识所对应的单位存储数据的数量和起始存储位置;当单位存储数据的数量小于或等于存储数量阈值时,则按照起始存储位置和目标单位存储数据的位图索引,从存储段读取目标单位存储数据的位图,大大提高了位图的计算效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据存储方法、数据读取方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,需要经常对一些数据进行存储,但是当需要被存储的数据的数量较大时,会占用大量的存储空间。
因此,为了节约存储空间,传统的数据存储方法,将数据以位图的形式进行存储,一个数据只占用一位(bit)。虽然相对于直接对数据进行存储,节约了一定的存储空间,但是由于在对有效数据存储的同时,也会对大量的无效数据进行存储,仍然造成了存储空间的浪费。
发明内容
基于此,有必要针对上述技术问题,提供一种能够节约存储空间的数据存储方法、数据读取方法、装置、计算机设备和存储介质。
一种数据存储方法,所述方法包括:
将目标数据划分得到多个数据段,每个数据段包括预设数量的数据单元,每个数据单元包括多个数据位且每个数据单元的数据位数相同;
当数据段中的有效数据单元的数量小于或等于存储数量阈值时,则
生成数据段中每个有效数据单元的单位存储数据,单位存储数据包括相应有效数据单元的位图索引和位图;
将数据段中每个有效数据单元的单位存储数据,按照位图索引顺序连续存储至相应数据段的存储段中。
在其中一个实施例中,所述方法还包括:
获取数据段的数据分布疏密类型;
按照数据分布疏密类型选择数据段的数据存储方式;
当选择的数据存储方式为多位图存储方式时,则
比较数据段中的有效数据单元的数量和存储数量阈值的大小。
在其中一个实施例中,所述方法还包括:
当数据段中的有效数据单元的数量大于存储数量阈值时,则
将数据段中的全体数据单元以整体位图的存储方式存储至相应数据段的存储段。
在其中一个实施例中,所述方法还包括:
获取目标数据位在所属的位图中的偏移量;
获取目标数据位所属位图的位图索引;
根据偏移量和位图索引,计算目标数据位在存储段中的索引号。
在其中一个实施例中,数据单元是长整型数据,数据位数为64,预设数量为256,存储数量阈值取自(0,227]。
一种数据存储装置,所述装置包括:
数据划分模块,用于将目标数据划分得到多个数据段,每个数据段包括预设数量的数据单元,每个数据单元包括多个数据位且每个数据单元的数据位数相同;
数据生成模块,用于当数据段中的有效数据单元的数量小于或等于存储数量阈值时,则
生成数据段中每个有效数据单元的单位存储数据,单位存储数据包括相应有效数据单元的位图索引和位图;
数据存储模块,用于将数据段中每个有效数据单元的单位存储数据,按照位图索引顺序连续存储至相应数据段的存储段中。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
将目标数据划分得到多个数据段,每个数据段包括预设数量的数据单元,每个数据单元包括多个数据位且每个数据单元的数据位数相同;
当数据段中的有效数据单元的数量小于或等于存储数量阈值时,则
生成数据段中每个有效数据单元的单位存储数据,单位存储数据包括相应有效数据单元的位图索引和位图;
将数据段中每个有效数据单元的单位存储数据,按照位图索引顺序连续存储至相应数据段的存储段中。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
将目标数据划分得到多个数据段,每个数据段包括预设数量的数据单元,每个数据单元包括多个数据位且每个数据单元的数据位数相同;
当数据段中的有效数据单元的数量小于或等于存储数量阈值时,则
生成数据段中每个有效数据单元的单位存储数据,单位存储数据包括相应有效数据单元的位图索引和位图;
将数据段中每个有效数据单元的单位存储数据,按照位图索引顺序连续存储至相应数据段的存储段中。
上述数据存储方法、装置、计算机设备和存储介质,将目标数据划分得到多个数据段,以确定各个数据段的预设数量的数据单元中有效数据单元的数量。只为有效数据单元的数量小于或等于存储数量阈值的数据段,生成有效数据单元的单位存储数据,单位存储数据包括相应有效数据单元的位图索引和位图。在保证了所有的单位存储数据均能被存储的同时,排除了无效数据单元,仅将有效数据单元按照位图索引顺序连续存储至相应数据段的存储段中,节约了存储空间。
一种数据读取方法,所述方法包括:
获取目标单位存储数据所在存储段的存储段标识;
读取存储段标识所对应的单位存储数据的数量和起始存储位置;
当单位存储数据的数量小于或等于存储数量阈值时,则
按照起始存储位置和目标单位存储数据的位图索引,从存储段读取目标单位存储数据的位图。
一种数据读取装置,所述装置包括:
标识获取模块,用于获取目标单位存储数据所在存储段的存储段标识;存储段中的单位存储数据通过上述数据存储装置进行存储得到;
第一读取模块,用于读取存储段标识所对应的单位存储数据的数量和起始存储位置;
第二读取模块,用于当单位存储数据的数量小于或等于存储数量阈值时,则
按照起始存储位置和目标单位存储数据的位图索引,从存储段读取目标单位存储数据的位图。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取目标单位存储数据所在存储段的存储段标识;
读取存储段标识所对应的单位存储数据的数量和起始存储位置;
当单位存储数据的数量小于或等于存储数量阈值时,则
按照起始存储位置和目标单位存储数据的位图索引,从存储段读取目标单位存储数据的位图。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取目标单位存储数据所在存储段的存储段标识;
读取存储段标识所对应的单位存储数据的数量和起始存储位置;
当单位存储数据的数量小于或等于存储数量阈值时,则
按照起始存储位置和目标单位存储数据的位图索引,从存储段读取目标单位存储数据的位图。
上述数据读取方法、装置、计算机设备和存储介质,当单位存储数据的数量小于或等于存储数量阈值时,可以确定该存储段的存储方式,按照单位存储数据的起始存储位置和目标单位存储数据的位图索引,从存储段读取目标单位存储数据的位图。每读取一个位图便一次性取出多个目标数据位,在需要对位图进行计算时,大大提高了位图的计算效率。
附图说明
图1为一个实施例中计算机设备的内部结构图;
图2为一个实施例中数据存储方法的流程示意图;
图3为另一个实施例中数据存储方法的流程示意图;
图4为一个实施例中存储长整型数据的示例图;
图5为一个实施例中长整型数据的示例图;
图6为一个实施例中数据段的示例图;
图7为一个实施例中数据读取方法的流程示意图;
图8为一个实施例中数据存储装置的结构框图;
图9为一个实施例中数据读取装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据存储方法和数据读取方法,可以应用于如图1所示的计算机设备。该计算机设备包括存储器和处理器,存储器中存储有计算机程序。计算机程序被处理器执行时,可以实现本申请提供的数据存储方法和数据读取方法中的至少一种。该计算机设备可以是终端,也可以是服务器。可以理解的是,当计算机设备为终端时,该计算机设备还可以包括显示屏和输入装置等。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数据存储方法,该方法包括以下步骤:
步骤S202,将目标数据划分得到多个数据段,每个数据段包括预设数量的数据单元,每个数据单元包括多个数据位且每个数据单元的数据位数相同。
其中,目标数据可以是原始数据或者位图,以二进制数据的形式展现。二进制是计算技术中广泛采用的一种数制,二进制数据是用0和1两个数码来表示的数。数据段指为了实现数据的压缩,将目标数据分成在逻辑上等长的部分,每部分叫做一个数据段,每个数据段包括多个数据单元。数据单元是包括多个数据位(bit)的数据单元。数据位是计算机处理信息的最小单位,计算机中的数据都是以0和1来表示的,其中一个0或者一个1称之为一个数据位,8个数据位为一个字节。
具体地,将目标数据按照数据段的预设长度进行划分,以得到多个数据段,预设长度为预设数量的数据单元的长度。则一个数据段包括预设数量的数据单元,一个数据单元包括多个数据位,并且每一个数据单元的数据位数相同。当数据位为“1”时,代表该数据位为有效数据位,当数据位为“0”时,代表该数据位为无效数据位。数据单元可以是整型数据,整型数据是不包含小数部分,只用来表示整数的数值型数据,以二进制形式存储。
步骤S204,当数据段中的有效数据单元的数量小于或等于存储数量阈值时,则生成数据段中每个有效数据单元的单位存储数据,单位存储数据包括相应有效数据单元的位图索引和位图。
其中,有效数据单元指至少包括一个有效数据位的数据单元,该有效数据单元的值不为0。阈值指界限,也称临界值。本实施例中的存储数量阈值,指数据段中有效数据单元的数量的临界值,可以是预先设置的。单位存储数据指包括相应有效数据单元的位图索引和位图的数据。
具体地,至少存在一个数据段中的有效数据单元的数量小于或等于存储数量阈值时,为有效数据单元的数量小于或等于存储数量阈值的数据段的每个有效数据单元,生成对应的单位存储数据,单位存储数据包括相应有效数据单元的位图索引和位图。
可以理解的是,本实施例中一个有效数据单元对应生成一个位图,并且确定该有效数据单元在所属数据段中的索引,将该索引作为位图索引。存储数量阈值需要保证所有的单位存储数据均能被存储下,存储数量阈值可以是能够存储下所有单位存储数据的最大存储数量。
步骤S206,将数据段中每个有效数据单元的单位存储数据,按照位图索引顺序连续存储至相应数据段的存储段中。
其中,存储段是用来存储数据的段,与数据段相对应,一个存储段最多存储数量为存储数量阈值的单位存储数据。具体地,生成数据段中每个有效数据单元的单位存储数据后,将该数据段中的每个有效数据单元的单位存储数据按照单位存储数据中位图索引的大小顺序,连续地存储至相应数据段的存储段中。本实施例中,将一个有效数据单元作为一个位图的形式进行存储,并将位图索引与位图按照位图索引在前、且位图在后的顺序相邻存储。
上述数据存储方法,将目标数据划分得到多个数据段,以确定各个数据段的预设数量的数据单元中有效数据单元的数量。只为有效数据单元的数量小于或等于存储数量阈值的数据段,生成有效数据单元的单位存储数据,单位存储数据包括相应有效数据单元的位图索引和位图。在保证了所有的单位存储数据均能被存储的同时,排除了无效数据单元,仅将有效数据单元按照位图索引顺序连续存储至相应数据段的存储段中,节约了存储空间。
在一个实施例中,如图3所示,该数据存储方法还包括以下步骤:
步骤S302,获取数据段的数据分布疏密类型。
其中,数据分布疏密类型指数据段中有效数据位的分布类型,本实施例中分为稀疏分布类型和密集分布类型。
具体地,计算机设备可以判断数据段中有效数据位和无效数据位的分布特征是否符合稀疏分布特征,若是则判定数据段属于稀疏分布类型,若否则判定数据段属于密集分布类型。
在一个实施例中,计算机设备可以判断数据段中有效数据位和无效数据位的分布特征是否符合密集分布特征,若是则判定数据段属于密集分布类型,若否则判定数据段属于稀疏分布类型。
在一个实施例中,计算机设备可以在稀疏分布特征和密集分布特征中,确定与数据段中有效数据位和无效数据位的分布特征相匹配的分布特征,若匹配稀疏分布特征,则判定数据段属于稀疏分布类型;若匹配密集分布特征,则判定数据段属于密集分布类型。
在一个实施例中,密集分布特征为:当统计了相邻有效数据位之间的无效数据位的间隔位数后,统计的间隔位数小于或等于第一预设阈值的次数达到第一预设次数。相应的稀疏分布特征可以为:当统计了相邻有效数据位之间的无效数据位的间隔位数后,统计的间隔位数大于第二预设阈值的次数达到第二预设次数。其中第一预设阈值和第二预设阈值可以相同,第一预设次数和第二预设次数可以相同。
在一个实施例中,计算机设备还可以确定数据段的应用场景,从而选择该应用场景所对应的预设分布疏密类型作为该数据段的分布疏密类型。比如,计算机设备确定的数据段的应用场景为某一个月份在2015年至2018年记录的所有数据,而预先分析确定该应用场景对应的预设分布疏密类型为密集分布类型,那么此时可直接确定该数据段的分布疏密类型为密集分布类型。
步骤S304,按照数据分布疏密类型选择数据段的数据存储方式。
具体地,当数据段中的有效数据位的分布类型为密集分布类型时,选择密集分布类型所对应的数据存储方式,并对该数据存储方式进行记录。当数据段中的有效数据位的分布类型为稀疏分布类型时,选择稀疏分布类型所对应的数据存储方式,并对该数据存储方式进行记录。
步骤S306,当选择的数据存储方式为多位图存储方式时,则比较所述数据段中的有效数据单元的数量和存储数量阈值的大小。
其中,多位图存储方式是将一个数据段分成多个位图进行存储的方式。具体地,当数据段中的有效数据位的分布类型为密集分布类型时,选择密集分布类型所对应的数据存储方式可以为多位图存储方式,当选择的数据存储方式为多位图存储方式时,将数据段中有效数据单元的数量的大小与存储数量阈值的大小进行比较。当数据段中的有效数据为的分布类型为稀疏分布类型时,选择稀疏分布类型所对应的数据存储方式可以为位图存储方式,将数据段中的全体数据单元以整体位图的存储方式存储至相应数据段的存储段。
本实施例中,通过判断数据段中有效数据位的疏密分布类型,根据疏密分布类型决定采用哪种数据存储方式,可以选择最节约存储空间的数据存储方式来存储目标数据。
在一个实施例中,该数据存储方法还包括:当数据段中的有效数据单元的数量大于存储数量阈值时,则将数据段中的全体数据单元以整体位图的存储方式存储至相应数据段的存储段。
具体地,当存在至少一个数据段中的有效数据单元的数量大于存储数量阈值时,将该数据段中的全体数据单元作为一个整体位图,按顺序存储至相应数据段的存储段中,可以理解的是,该存储段存储的数据单元包括无效数据单元和有效数据单元。
本实施例中,当数据段中的有效数据单元的数量大于存储数量阈值时,说明此时采用整体位图的存储方式存储数据相对于采用多位图存储方式存储数据可能会用更少的存储空间。这样根据数据段中有效数据单元的数量多少来灵活采用更优的存储方式进行存储,可进一步节约存储空间。
在一个实施例中,该数据存储方法还包括:获取目标数据位在所属的位图中的偏移量;获取目标数据位所属位图的位图索引;根据偏移量和位图索引,计算目标数据位在存储段中的索引号。
具体地,获取目标数据位与该位图的起始数据位之间的距离,按照该距离的长度确定目标数据位在所属的位图中的偏移量。获取该位图的位图索引,根据位图索引,可以计算出目标数据位所属位图在所属存储段中的起始位置,从该起始位置起,根据目标数据位在所属位图中的偏移量,可以计算出目标数据位在该存储段中的索引号。
例如,如图4所示,目标数据位402所属位图的位图索引为3,目标数据位402在所属位图中的偏移量为2,可以通过计算公式3*64+2得到目标数据402在该存储段中的索引号为194。本实施例中,根据位图索引和目标数据位在所属位图中的偏移量,可以计算出目标数据对应的目标数据位在所属数据段中的索引号。
在一个实施例中,该数据存储方法还包括:记录存储段的存储段标识;对应于存储段标识记录存储段的起始存储位置和所存储的单位存储数据的数量。
具体地,对存储段的存储段标识进行记录,存储段标识可以是数字或符号等。对应于存储段标识记录存储段的起始存储位置,以便于在检索目标数据位时,可以快速地定位至该目标数据位所属的存储段。对应于存储段标识记录存储段所存储的单位存储数据的数量,以便于在读取单位存储数据前,根据单位存储数据的数量判断该存储段的存储方式,并确定与该存储方式对应的读取方式。
在一个实施例中,数据单元可以是长整型数据,数据位数为64,预设数量为256,存储数量阈值取自(0,227]。
其中,长整型数据是计算机程序设计中数据类型的一种表现方式,一般情况下用long表示长整型数据,为有符号的64位整数。
具体地,数据单元可以是长整型数据,长整型数据的数据位数为64位,有效的长整型数据是值不等于0的长整型数据。如图5所示,第一个长整型数据的值为-1,不等于0,则该长整型数据为有效长整型数据,第二个长整型数据的值为0,则该长整型数据为无效长整型数据,第三个长整型数据的值为100,不等于0,则该长整型数据为有效长整型数据。如图6所示,长整型数据的预设数量可以为256个,则256个长整型数据为一个数据段。存储数量阈值可以取(0,227]中的任意一个值,比如128。位图索引占用1个字节。当存储数量阈值取128时,综合节约存储空间和读取数据的效果更佳。
本实施例中,数据单元为长整型数据时,一个长整型数据的位图为8个字节,一个位图索引占用1个字节,则仅占用9个字节,便能存储64个数据位。
在一个实施例中,以数据单元为长整型数据,且存储数量阈值为128,对该数据存储方法进行举例说明:
将目标数据划分得到多个数据段,每个数据段包括256个长整型数据,每个长整型数据的数据位数均为64位,则一个数据段最多可以包括8192(256*64)个数据位。当该数据段中的有效长整型数据的数量小于或等于128时,则生成该数据段中每个有效长整型数据的单位存储数据,单位存储数据包括相应有效长整型数据的位图索引和位图,位图占用64位(即8个字节),位图索引占用1个字节。
如图4所示,将数据段中每个有效数据单元的单位存储数据,按照位图索引顺序连续存储至相应数据段的存储段中,则一个单位存储数据占用9个字节。在该数据段中的有效数据位分布密集的情况下,节约了存储空间。
在一个实施例中,如图7所示,提供了一种数据读取方法,该方法包括:
步骤S702,获取目标单位存储数据所在存储段的存储段标识。
步骤S704,读取存储段标识所对应的单位存储数据的数量和起始存储位置。
步骤S706,当单位存储数据的数量小于或等于存储数量阈值时,则按照起始存储位置和目标单位存储数据的位图索引,从存储段读取目标单位存储数据的位图。
具体地,获取目标单位存储数据所在存储段的存储段标识,以读取存储段标识所对应的单位存储数据的数量和起始存储位置,该存储段标识可以是数字或符号等。可以通过判断单位存储数据的数量是否小于或等于存储数量阈值,确定读取目标单位存储数据的读取方式。当单位存储数据的数量小于或等于存储数量阈值时,可以确定该存储段的存储方式为多位图存储方式,按照单位存储数据的起始存储位置和目标单位存储数据的位图索引,确定该单位存储数据在所属存储段中的存储位置,便可以从该存储位置中读取单位存储数据的位图。
上述数据读取方法,当单位存储数据的数量小于或等于存储数量阈值时,可以确定该存储段的存储方式,按照单位存储数据的起始存储位置和目标单位存储数据的位图索引,从存储段读取目标单位存储数据的位图。每读取一个位图便一次性取出多个目标数据位,在需要对位图进行计算时,大大提高了位图的计算效率。
应该理解的是,虽然图2、3和7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、3和7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种数据存储装置800,该装置包括:数据划分模块802、数据生成模块804和数据存储模块806,其中:
数据划分模块802,用于将目标数据划分得到多个数据段,每个数据段包括预设数量的数据单元,每个数据单元包括多个数据位且每个数据单元的数据位数相同;
数据生成模块804,用于当数据段中的有效数据单元的数量小于或等于存储数量阈值时,则生成数据段中每个有效数据单元的单位存储数据,单位存储数据包括相应有效数据单元的位图索引和位图;
数据存储模块806,用于将数据段中每个有效数据单元的单位存储数据,按照位图索引顺序连续存储至相应数据段的存储段中。
在一个实施例中,该装置还包括比较模块,用于获取数据段的数据分布疏密类型;按照数据分布疏密类型选择数据段的数据存储方式;当选择的数据存储方式为多位图存储方式时,则比较数据段中的有效数据单元的数量和存储数量阈值的大小。
在一个实施例中,数据存储模块806还用于当数据段中的有效数据单元的数量大于存储数量阈值时,则将数据段中的全体数据单元以整体位图的存储方式存储至相应数据段的存储段。
在一个实施例中,该装置还包括索引号计算模块,用于获取目标数据位在所属的位图中的偏移量;获取目标数据位所属位图的位图索引;根据偏移量和位图索引,计算目标数据位在存储段中的索引号。
在一个实施例中,该装置还包括标识记录模块,用于记录存储段的存储段标识;对应于存储段标识记录存储段的起始存储位置和所存储的单位存储数据的数量。
在一个实施例中,数据单元是长整型数据,数据位数为64,预设数量为256,存储数量阈值取自(0,227]。
在一个实施例中,如图9所示,提供了一种数据读取装置900,该装置包括:标识获取模块902、第一读取模块904和第二读取模块906,其中:
标识获取模块902,用于获取目标单位存储数据所在存储段的存储段标识;
第一读取模块904,用于读取存储段标识所对应的单位存储数据的数量和起始存储位置;
第二读取模块906,用于当单位存储数据的数量小于或等于存储数量阈值时,则按照起始存储位置和目标单位存储数据的位图索引,从存储段读取目标单位存储数据的位图。
关于数据存储装置和数据读取装置的具体限定可以参见上文中对于数据存储方法和数据读取方法的限定,在此不再赘述。上述数据存储装置和数据读取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图1所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。可以理解的是,当计算机设备为终端时,该计算机设备还可以包括显示屏和输入装置等。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现数据存储方法和数据读取方法中的至少一种。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例的数据存储方法或数据读取方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例的数据存储方法或数据读取方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (11)
1.一种数据存储方法,所述方法包括:
将目标数据划分得到多个数据段,每个数据段包括预设数量的数据单元,每个数据单元包括多个数据位且每个数据单元的数据位数相同;
当所述数据段中的有效数据单元的数量小于或等于存储数量阈值时,则
生成所述数据段中每个有效数据单元的单位存储数据,所述单位存储数据包括相应有效数据单元的位图索引和位图,所述位图索引为有效数据单元在所属数据段中的索引;
将所述数据段中每个有效数据单元的单位存储数据,按照位图索引顺序连续存储至相应数据段的存储段中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述数据段的数据分布疏密类型;
按照所述数据分布疏密类型选择所述数据段的数据存储方式;
当选择的数据存储方式为多位图存储方式时,则
比较所述数据段中的有效数据单元的数量和存储数量阈值的大小。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述数据段中的有效数据单元的数量大于所述存储数量阈值时,则
将所述数据段中的全体数据单元以整体位图的存储方式存储至相应数据段的存储段。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取目标数据位在所属的所述位图中的偏移量;
获取所述目标数据位所属位图的所述位图索引;
根据所述偏移量和所述位图索引,计算所述目标数据位在所述存储段中的索引号。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
记录所述存储段的存储段标识;
对应于所述存储段标识记录所述存储段的起始存储位置和所存储的单位存储数据的数量。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述数据单元是长整型数据,所述数据位数为64,所述预设数量为256,所述存储数量阈值取自(0,227]。
7.一种数据读取方法,所述方法包括:
获取目标单位存储数据所在存储段的存储段标识;所述存储段中的单位存储数据通过如权利要求1至6中任一项所述的方法进行存储得到;
读取所述存储段标识所对应的单位存储数据的数量和起始存储位置;
当所述单位存储数据的数量小于或等于存储数量阈值时,则
按照所述起始存储位置和所述目标单位存储数据的位图索引,从所述存储段读取所述目标单位存储数据的位图。
8.一种数据存储装置,其特征在于,所述装置包括:
数据划分模块,用于将目标数据划分得到多个数据段,每个数据段包括预设数量的数据单元,每个数据单元包括多个数据位且每个数据单元的数据位数相同;
数据生成模块,用于当所述数据段中的有效数据单元的数量小于或等于存储数量阈值时,则
生成所述数据段中每个有效数据单元的单位存储数据,所述单位存储数据包括相应有效数据单元的位图索引和位图,所述位图索引为有效数据单元在所属数据段中的索引;
数据存储模块,用于将所述数据段中每个有效数据单元的单位存储数据,按照位图索引顺序连续存储至相应数据段的存储段中。
9.一种数据读取装置,其特征在于,所述装置包括:
标识获取模块,用于获取目标单位存储数据所在存储段的存储段标识;所述存储段中的单位存储数据通过如权利要求8所述的装置进行存储得到;
第一读取模块,用于读取所述存储段标识所对应的单位存储数据的数量和起始存储位置;
第二读取模块,用于当所述单位存储数据的数量小于或等于存储数量阈值时,则
按照所述起始存储位置和所述目标单位存储数据的位图索引,从所述存储段读取所述目标单位存储数据的位图。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现权利要求1至7中任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811360578.2A CN109597571B (zh) | 2018-11-15 | 2018-11-15 | 数据存储方法、数据读取方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811360578.2A CN109597571B (zh) | 2018-11-15 | 2018-11-15 | 数据存储方法、数据读取方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109597571A CN109597571A (zh) | 2019-04-09 |
CN109597571B true CN109597571B (zh) | 2022-02-15 |
Family
ID=65957288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811360578.2A Active CN109597571B (zh) | 2018-11-15 | 2018-11-15 | 数据存储方法、数据读取方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109597571B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209348B (zh) * | 2019-04-17 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN111208713B (zh) * | 2020-03-17 | 2022-08-16 | 合肥芯碁微电子装备股份有限公司 | 处理曝光图形数据的方法、曝光控制单元和直写式曝光机 |
CN111651404A (zh) * | 2020-04-26 | 2020-09-11 | 浙江吉利汽车研究院有限公司 | 传感器数据存储、读取方法及数据存储、读取装置 |
CN112667525A (zh) * | 2020-12-23 | 2021-04-16 | 北京浪潮数据技术有限公司 | 一种持久性内存的已用空间度量方法及组件 |
CN113282247A (zh) * | 2021-06-24 | 2021-08-20 | 京东科技控股股份有限公司 | 数据存储方法、数据读取方法、装置和电子设备 |
CN113590890B (zh) * | 2021-08-04 | 2024-03-26 | 拉卡拉支付股份有限公司 | 信息存储方法、装置、电子设备、存储介质及程序产品 |
CN113868182A (zh) * | 2021-09-28 | 2021-12-31 | 歌尔科技有限公司 | 一种数据压缩方法、装置、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995887A (zh) * | 2014-05-30 | 2014-08-20 | 上海达梦数据库有限公司 | 位图索引压缩方法和位图索引解压方法 |
CN104506619A (zh) * | 2014-12-22 | 2015-04-08 | 华为技术有限公司 | 一种数据备份、恢复方法及其装置、服务器 |
CN107544864A (zh) * | 2016-06-24 | 2018-01-05 | 深圳市深信服电子科技有限公司 | 一种虚拟机数据拷贝方法及虚拟机数据拷贝系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122193B2 (en) * | 2004-12-21 | 2012-02-21 | Samsung Electronics Co., Ltd. | Storage device and user device including the same |
US8151082B2 (en) * | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
CN102929884B (zh) * | 2011-08-10 | 2016-05-04 | 阿里巴巴集团控股有限公司 | 一种收缩虚拟磁盘镜像文件的方法及装置 |
CN104424224B (zh) * | 2013-08-26 | 2019-09-20 | 深圳市腾讯计算机系统有限公司 | 一种文件索引存储方法及装置 |
JP6139381B2 (ja) * | 2013-11-01 | 2017-05-31 | 株式会社東芝 | メモリシステムおよび方法 |
US9778863B2 (en) * | 2014-09-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for folding partial blocks into multi-level cell memory blocks |
-
2018
- 2018-11-15 CN CN201811360578.2A patent/CN109597571B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995887A (zh) * | 2014-05-30 | 2014-08-20 | 上海达梦数据库有限公司 | 位图索引压缩方法和位图索引解压方法 |
CN104506619A (zh) * | 2014-12-22 | 2015-04-08 | 华为技术有限公司 | 一种数据备份、恢复方法及其装置、服务器 |
CN107544864A (zh) * | 2016-06-24 | 2018-01-05 | 深圳市深信服电子科技有限公司 | 一种虚拟机数据拷贝方法及虚拟机数据拷贝系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109597571A (zh) | 2019-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109597571B (zh) | 数据存储方法、数据读取方法、装置和计算机设备 | |
CN110209348B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN109656474B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN108389124B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112347002B (zh) | flash数据的保存方法、系统、计算机设备及存储介质 | |
CN109634955B (zh) | 数据存储方法、数据检索方法和装置 | |
CN110515974B (zh) | 数据抽取方法、装置、计算机设备和存储介质 | |
CN109542962B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111158606A (zh) | 存储方法、装置、计算机设备和存储介质 | |
CN110956195A (zh) | 图像匹配方法、装置、计算机设备及存储介质 | |
CN112800123B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113312309B (zh) | 快照链的管理方法、装置和存储介质 | |
CN110442531B (zh) | 基于固态硬盘的读性能提升方法、装置和计算机设备 | |
CN109284260B (zh) | 大数据文件读取方法、装置、计算机设备及存储介质 | |
CN111191082B (zh) | 数据管理方法、装置、计算机设备和存储介质 | |
CN109656948B (zh) | 位图数据处理方法、装置、计算机设备和存储介质 | |
CN109582516B (zh) | Ssd后端性能分析方法、装置、计算机设备和存储介质 | |
CN112783866A (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN110888823B (zh) | 页扫描效率的提升方法、装置及计算机设备 | |
CN112860755B (zh) | 业务标识生成方法、装置、计算机设备和介质 | |
CN114115754B (zh) | 用于数据更新的方法及装置、电子设备、存储介质 | |
CN109656949B (zh) | 位图的索引搜索方法、装置、计算机设备和存储介质 | |
CN116842029B (zh) | 一种资产管理方法、装置、计算机设备和存储介质 | |
CN114185620B (zh) | 加速ssd固件加载实现方法、装置、计算机设备及存储介质 | |
CN113220842B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |