数据库数据存储和快速查询的方法及装置与流程

文档序号:13222056阅读:366来源:国知局
技术领域本发明涉及信息技术中的数据查询领域,特别涉及一种数据库数据存储和快速查询的方法及装置。

背景技术:
随着信息技术的发展,各行各业都需要使用各种信息管理系统将收集到的各种数据存储到数据库中。通常数据都具有基于信息记录的收集或者保存时间作为索引的一个主键,同时对应该主键会产生多条其他的数据记录。目前技术背景下,针对以上情况会先设计一个主体信息表,存放该信息的主体数据,以及设计多个附加信息表保存与该主体信息对应的其他信息点,主体信息表与附加信息表通过主体信息表的主键关联,并具有一对多的对应关系。例如:在超声信息管理系统中每个超声检查都会使用该检查的保存时间生成一个唯一标识号作为主键StudyIdentity,检查的主体信息保存到数据库的Study表中,每个检查都会产生多条图像信息数据保存到StudyImages表中,Study表与StudyImages表通过StudyIdentity关联,并具有一对多的关联关系。然而,当这些数据的量增长到一定数目后,在数据库中存储及查询这些数据时将会消耗大量的系统资源,查询时返回结果的时间也会相应的增长。

技术实现要素:
本发明的主要目的为提供一种数据库数据存储和快速查询的方法及装置,减少数据库数据查询操作对系统资源的消耗量,减少查询时间,提升数据库数据查询操作执行的效率。本发明提出一种数据库数据存储方法,所述数据库中存储的数据包括主体信息以及附加信息,分别对应存储于主体信息表以及附加信息表中,所述数据存储方法包括:在进行数据存储时,根据存储数据时的时间生成一个唯一的主键值;在所述附加信息表下创建多个与附加信息表结构相同的子数据表,将所述附加信息表中的附加信息分散至所述子数据表中,并将所述主键值的前三位设为所述子数据表名称的后缀。进一步地,所述根据存储数据时的时间生成一个唯一的主键值的步骤包括:设定一个时间基点;计算存储数据时存储时间与时间基点的天数间隔和余数,并根据余数计算余数的分钟数;以及,获取随机产生的一个随机数;根据所述天数间隔、分钟数以及随机数,通过位置敏感哈希函数计算主键值。进一步地,所述根据所述天数间隔、分钟数以及随机数,通过位置敏感哈希函数计算主键值的计算公式为:K=(2ba+c)2d+e其中,K为主键值,a为天数间隔,b为第一偏移常量,c为分钟数,d为第二偏移常量,e为随机数。本发明还提供了一种数据库数据存储装置,所述数据库中存储的数据包括主体信息以及附加信息,分别对应存储于主体信息表以及附加信息表中,所述存储装置包括:主键生成单元,在进行数据存储时,根据存储数据时的时间生成一个唯一的主键值;创建单元,在所述附加信息表下创建多个与附加信息表结构相同的子数据表,将所述附加信息表中的附加信息分散至所述子数据表中,并将所述主键值的前三位设为所述子数据表名称的后缀。进一步地,所述主键生成单元包括:设定基点子单元,设定一个时间基点;时间计算子单元,计算存储数据时的时间与时间基点的天数间隔和余数,并根据余数计算余数的分钟数;以及,获取随机产生的一个随机数;主键值计算子单元,根据所述天数间隔、分钟数以及随机数,通过位置敏感哈希函数计算主键值。进一步地,所述主键值计算子单元计算主键值的计算公式为:K=(2ba+c)2d+e其中,K为主键值,a为天数间隔,b为第一偏移常量,c为分钟数,d为第二偏移常量,d为随机数。本发明还提供了一种数据库数据快速查询的方法,所述数据库中存储的数据包括主体信息以及附加信息,分别对应存储于主体信息表以及附加信息表中,所述快速查询方法包括:获取主键值;所述主键值是根据存储数据时的时间生成的一个唯一的主键值;根据主键值的前三位查询附加信息存放的子数据表名称,从对应子数据表中查询附加信息;所述子数据表是在所述附加信息表下创建多个与附加信息表结构相同的子数据表,所述子数据表中分散存储所述附加信息表中的附加信息,所述子数据表名称的后缀为所述主键值的前三位。本发明还提供了一种数据库数据快速查询的装置,所述数据库中存储的数据包括主体信息以及附加信息,分别对应存储于主体信息表以及附加信息表中,所述快速查询装置包括:获取单元,获取主键值;所述主键值是根据存储数据时的时间生成的一个唯一的主键值;查询单元,根据主键值的前三位查询附加信息存放的子数据表名称,从对应子数据表中查询附加信息;所述子数据表是在所述附加信息表下创建多个与附加信息表结构相同的子数据表,所述子数据表中分散存储所述附加信息表中的附加信息,所述子数据表名称的后缀为所述主键值的前三位。本发明中提供的数据库数据存储和快速查询的方法及装置,具有以下有益效果:本发明中提供的数据库数据存储和快速查询的方法及装置,设置多个与附加信息表结构相同的子数据表,将附加信息分散,降低每个子数据表的数据量以及物理文件大小;将主键值的前三位作为子数据表名称的后缀,执行数据查询时,只需要通过主体信息的主键前三位确定附加信息存放的子数据表名称,再执行相应查询,减少数据库数据查询操作对系统资源的消耗量,减少查询时间,提升数据库数据查询操作执行的效率;减少查询时返回结果的时间。附图说明图1是本发明一实施例中数据库数据存储的方法示意图;图2是本发明一实施例中数据库数据存储装置结构示意图;图3是本发明一实施例中主键生成单元结构示意图;图4是本发明一实施例中数据库数据快速查询的方法示意图;图5是本发明一实施例中数据库数据存储和快速查询的装置结构示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参照图1,为本发明一实施例中数据库数据存储的方法示意图。本发明提出一种数据库数据存储方法,上述数据库中存储的数据包括主体信息以及附加信息,分别对应存储于主体信息表以及附加信息表中,上述数据存储方法包括:步骤S1:在进行数据存储时,根据存储数据时的时间生成一个唯一的主键值;步骤S2:在上述附加信息表下创建多个与附加信息表结构相同的子数据表,将上述附加信息表中的附加信息分散至上述子数据表中,并将上述主键值的前三位设为上述子数据表名称的后缀。在本实施例中,数据库中存储的数据包括主体信息以及附加信息,分别对应存储于主体信息表以及附加信息表中,在附加信息表下创建多个与附加信息表结构相同的子数据表,将附加信息表中的附加信息分散至上述多个子数据表中,减少每个子数据表的数据量和物理文件大小。主体信息表中的主题信息与附加信息表中的附加信息通过唯一的主键值关联;将相类似的附加信息放入在同一子数据表中,并将主键值的前三位设为上述子数据表名称的后缀;当需要查询主体信息对应的附加信息只需要根据主键值的前三位查询到子数据表,再从中查询到所需的附加信息。因此会大大减少对数据表文件的读写,缩短查询时间。执行数据查询时,减少数据库数据查询操作对系统资源的消耗量,减少查询时间,提升数据库数据查询操作执行的效率;减少查询时返回结果的时间。进一步地,上述步骤S1中,根据存储数据时的时间生成一个唯一的主键值的步骤包括:设定一个时间基点;计算存储数据时的时间与时间基点的天数间隔和余数,并根据余数计算余数的分钟数;以及,获取随机产生的一个随机数,该随机数可以为计算机程序自动生成的一个4字节的随机数;根据上述天数间隔、分钟数以及随机数,通过位置敏感哈希函数(LocationSensitiveHash,LSH)计算主键值。上述根据上述天数间隔、分钟数以及随机数,通过位置敏感哈希函数计算主键值的计算公式为:K=(2ba+c)2d+e其中,K为主键值,a为天数间隔,b为第一偏移常量,通常为10左右的整数,在本实施例中b为11;c为分钟数;d为第二偏移常量,本实施例中d为32,e为4字节的随机数。在本实施例中,通过上述步骤生成一个唯一唯一的主键值,作为主体信息的唯一标识。在一具体实施例中,生成主键值的具体步骤如下:设定时间基点,例如2005-1-100:00:00;计算存储数据时的时间与时间基点的天数间隔和余数,例如当前存储时间为2015-11-2114:02:00,则天数间隔a为3976,其为一整数;根据余数计算余数的分钟数,分钟数c为14*60+2=842;第一偏移常量b设置为11。获取随机产生的一个随机数,即e=2102624584;因此,主键值K的计算公式如下:K={[(a*lsh11)+c]lshd
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1