一种创建数据库索引及其查询的方法

文档序号:6631797阅读:642来源:国知局
一种创建数据库索引及其查询的方法
【专利摘要】本发明涉及一种创建数据库索引及其查询的方法,该方法包括以下步骤:(1)在表中预留一个扩展字段,并为该扩展字段创建唯一性索引;(2)进行数据存储时,将标示id和数据采样时间拼接生成所述扩展字段的值;(3)将所述扩展字段值与其他字段的值一并存入所述表中,扩展字段与其他字段的值在一条数据记录中;(4)进行数据查询时,将用户查询的标示id和数据采样时间拼接得到需要查询的所述扩展字段的值,利用所述扩展字段值作为查询条件进行数据查询。本发明在同时进行数据库存入和查询的过程中,将关键字段拼接为一个字段,并建立唯一性索引,不仅满足了数据的唯一性要求,提高了查询效率,而且还保证了数据存入数据库的速度。
【专利说明】一种创建数据库索引及其查询的方法

【技术领域】
[0001] 本发明涉及数据库领域,尤其涉及一种创建数据库索引及其查询的方法。

【背景技术】
[0002] 在很多行业中,每时每刻都产生大量数据,从而形成了对海量数据的存储性能需 求,而随着各行业信息系统的发展,又产生了对这些海量历史数据的查询性能需求,例如查 询某一特定标示id在某一时间段的所有记录,从而要求我们为该标示id以及时间字段建 立相应的索引满足快速查询的需求。同时由于在不断产生新的数据要求导入进存储系统 中,这样还要求数据库系统有极高的导入速度。
[0003] 而索引是对数据库表中一列或多列的值进行排序的一种结构。其方式为二叉树或 者哈希查找,避免扫描全表的情况。更通俗来讲,索引的作用相当于图书的目录,可以根据 目录中的页码快速找到所需的内容。在一张有大量记录的表中,如果没有创建查询条件的 索引时,其搜索方式就是全表搜索,将所有表中记录与查询条件做比较,再返回查询结果, 但是这样会消耗大量时间以及磁盘10操作;另一种方式就是合理创建索引,先在索引中查 找符合查询条件的索引值,再通过索引值对应的行号快速找到满足查询条件的结果集,这 样对查询性能会有很大帮助。
[0004] 对于标示id+数据采样时间这种比较普适性的查询场景,可以分别建立标示id和 数据采样时间的唯一性索引或者建立这两个字段的联合索引以提高查询性能及保证数据 唯一性,但是随着单表数据容量的增大,数据库系统需要维护大量的索引,创建过多的索引 势必会降低存储的性能。
[0005] 例如在某张数据记录表中有标示id、采样时间以及其他一些字段等。其中查询条 件为标示id和采样时间,如果对标示id及采样时间字段分别创建索引或者创建两个字段 的联合y引固然能提升查询性能,但是随着数据量的增大数据库系统要维护大量的索引, 不能提高数据库增删改的性能,反而会影响其性能,基于这个原因我们提出了另一种创建 索引的方法,该方法既能有效保证数据唯一性及查询速度又能降低过多的索引对存储带来 的负面效应。


【发明内容】

[0006]本发明为克服上述的不足之处,目的在于提供一种创建数据库索引及其查询的方 法,该方法依据标示id和时间time可以唯一确定一条数据记录的思想,通过在表中预留一 个扩展字段,并为该扩展字段创建唯一性索引。数据存储时,扩展字段的值是由标示"和 时间time两个字段的值拼接得来,与其他字段一起存入数据库。数据查询时,将查询参数 标f id和时间time按与存储相同的方式拼接成扩展字段的值,将扩展字段作为SQL参数 进行数据查询。该方法不仅满足了数据的唯一性要求,提高了查询效率,而且还保证了数据 存入数据库的速度。
[0007]本发明是通过以下技术方案达到上述目的:一种创建数据库索引及其查询的方 法,包括如下步骤:
[0008] (1)创建数据记录表并预留扩展字段;
[0009] (2)为扩展字段创建唯一性索引;
[0010] ⑶为数据存储对象中各属性赋值;
[0011] (4)将标示id和数据采样时间拼接生成数据存储对象中扩展字段的属性值;
[0012] (5)将扩展字段属性值与其他字段的属性值作为一条数据记录存入数据库;
[0013] (6)通过标示id和数据采样时间拼接得到需要查询的扩展字段的属性值;
[0014] (7)利用扩展字段属性值进行数据查询,得到数据记录。
[0015] 作为优选,所述扩展字段的类型是十进制长度为20的长整型。
[0016] 作为优选,所述步骤(4)与步骤(6)对标示id和数据采样时间的拼接方法相同。
[0017] 作为优选,所述的拼接过程步骤如下:
[0018] 1)将数据采样时间转换为数据采样时间代表的秒数量,秒数量的类型是长度为 10位的长整型;
[0019] 2)将标示id转换为长度不超过10位的长整型数,将长整型数乘以10的10次方;
[0020] 3)将步骤1)和步骤2)的结果进行相加得到扩展字段的属性值。
[0021] 作为优选,所述的步骤(7)利用扩展字段属性值进行数据查询为将扩展字段值作 为SQL的参数进行数据查询。
[0022] 本发明的有益效果在于:(1)本发明仅对一个字段建立唯一性索引,不仅有效保 证了数据唯一性及查询速度,而且还避免了过多索引对存储带来的负面效应;(2)本发明 在同时进行数据库存入和查询的过程中,将关键字段拼接为一个字段,保证了数据存入数 据库的速度。

【专利附图】

【附图说明】
[0023] 图1是本发明的整体结构示意图;
[0024] 图2是本发明数据存储的流程图;
[0025] 图3是本发明数据记录表查询的流程图。

【具体实施方式】
[0026]下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于 此:
[0027] 实施例1 :一种创建数据库索引及其查询的方法,主要步骤包括:(1)在表中预留 一个扩展字段,并为该扩展字段创建唯一性索引。
[0028] 这里的唯一性索引的定义是通常数据库软件(oracle,mysql等)所支持的一种索 引类型,将扩展字段的索引类型设置为"唯一性索引"以保证在索引列中的全部数据是唯二 的,不会包含重复数据。
[0029]如图1所示的本发明创建数据库索引方法的整体示意图,该发明涉及数据库、存 储系统和查询系统三个模块。
[0030]假设在所述数据库中数据记录表的定义如下表1所示,这里简称该表为 datarecord :
[0031]

【权利要求】
1. 一种创建数据库索引及其查询的方法,其特征在于包括如下步骤: (1) 创建数据记录表并预留扩展字段; (2) 为扩展字段创建唯一性索引; (3) 为数据存储对象中各属性赋值; (4) 将标示id和数据采样时间拼接生成数据存储对象中扩展字段的属性值; (5) 将扩展字段属性值与其他字段的属性值作为一条数据记录存入数据库; (6) 通过标示id和数据采样时间拼接得到需要查询的扩展字段的属性值; (7) 利用扩展字段属性值进行数据查询,得到数据记录。
2. 根据权利要求1所述的一种创建数据库索引及其查询的方法,其特征在于,所述扩 展字段的类型是十进制长度为20的长整型。
3. 根据权利要求1或2所述的一种创建数据库索引及其查询的方法,其特征在于,所述 步骤(4)与步骤(6)对标示id和数据采样时间的拼接方法相同。
4. 根据权利要求1或2所述的一种创建数据库索引及其查询的方法,其特征在于,所述 的拼接过程步骤如下: 1) 将数据采样时间转换为数据采样时间代表的秒数量,秒数量的类型是长度为10位 的长整型; 2) 将标示id转换为长度不超过10位的长整型数,将长整型数乘以10的10次方; 3) 将步骤1)和步骤2)的结果进行相加得到扩展字段的属性值。
5. 根据权利要求3所述的一种创建数据库索引及其查询的方法,其特征在于,所述的 拼接过程步骤如下: 1) 将数据采样时间转换为数据采样时间代表的秒数量,秒数量的类型是长度为10位 的长整型; 2) 将标示id转换为长度不超过10位的长整型数,将长整型数乘以10的10次方; 3) 将步骤1)和步骤2)的结果进行相加得到扩展字段的属性值。
6. 根据权利要求1或2或5所述的一种创建数据库索引及其查询的方法,其特征在于, 所述的步骤(7)利用扩展字段属性值进行数据查询为将扩展字段值作为SQL的参数进行数 据查询。
7. 根据权利要求3所述的一种创建数据库索引及其查询的方法,其特征在于,所述的 步骤(7)利用扩展字段属性值进行数据查询为将扩展字段值作为SQL的参数进行数据查 询。
8. 根据权利要求4所述的一种创建数据库索引及其查询的方法,其特征在于,所述的 步骤(7)利用扩展字段属性值进行数据查询为将扩展字段值作为SQL的参数进行数据查 询。
【文档编号】G06F17/30GK104268298SQ201410583221
【公开日】2015年1月7日 申请日期:2014年10月27日 优先权日:2014年10月27日
【发明者】徐田田, 齐朗晔, 王杰, 李少利, 李江伟 申请人:中电海康集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1