一种关系数据库的高效查询方法和装置制造方法及图纸

技术编号:32784209 阅读:18 留言:0更新日期:2022-03-23 19:43
本发明专利技术公开了一种关系数据库的高效查询方法和装置,该方法包括以下步骤:将查询关系数据库获得的记录写入Redis生成第二二维表作为缓存,所述关系数据库上保存有第一二维表的第一时间戳;所述第二二维表中保存有所述第二二维表的第二时间戳;通过比较所述第一时间戳与所述第二时间戳的时间先后,判断所述第二二维表是否需要生成或更新,并从关系数据库或Redis查询满足指定条件的记录。本发明专利技术,由于部分记录可以从Redis缓存的二维表中查询获得,因此,减轻了关系数据库的压力,提高了查询效率。率。率。

【技术实现步骤摘要】
一种关系数据库的高效查询方法和装置


[0001]本专利技术涉及数据库
,具体涉及一种关系数据库的高效查询方法和装置。

技术介绍

[0002]数据库的应用领域非常广泛,不管是家庭、公司或大型企业,还是政府部门,都需要使用数据库来存储数据信息。其中,应用最多的是关系型数据库,如Oracle、Mysql、SqlServer等。
[0003]关系型数据库基于单一关系模型,结构化存储,有完整性约束,和常见的表格比较相似,通过二维表建立数据之间的联系,采用结构化查询语言(SQL)做数据读写。其优点在于,通过事务处理保持数据的一致性,数据更新的开销很小,可以进行Join等复杂查询。然而,关系型数据库使用select语句对二维表进行查询,如果直接对关系型数据库进行查询,会对数据库造成较大压力,查询效率较低。
[0004]有鉴于此,急需对现有的关系型数据库查询方法进行改进,以减轻查询关系型数据库的压力,提升查询效率。

技术实现思路

[0005]针对上述缺陷,本专利技术所要解决的技术问题在于提供一种关系数据库的高效查询方法和装置,以解决现有的关系型数据库查询方法,对数据库造成较大压力,查询效率较低的问题。
[0006]为此,本专利技术提供的一种关系数据库的高效查询方法,包括以下步骤:
[0007]将查询关系数据库获得的记录写入第一二维表并将所述第一二维表写入Redis生成第二二维表,所述第二二维表作为所述第一二维表的缓存,所述关系数据库上保存有第一二维表生成或更新时的第一时间戳;所述第二二维表中保存有所述第二二维表生成或更新时的第二时间戳;根据所述第一时间戳更新所述第二时间戳;
[0008]通过比较所述第一时间戳与所述第二时间戳的时间先后,判断所述二维表是否需要生成或更新,无所述第二时间戳视为所述第一时间戳在后;
[0009]如果所述第二二维表需要生成或更新,则根据查询条件从关系数据库读取满足查询条件的记录,然后将该记录以及查询索引写入Redis生成或更新所述第二二维表;否则,不更新所述第二二维表,从所述第二二维表中查询满足查询条件的记录。
[0010]在上述方法中,将关系数据库中的记录写入所述第一二维表时,生成所述第一时间戳,并将所述第一时间戳与所述第二二维表的映射关系构造第三二维表,保存在关系数据库中;
[0011]关系数据库上设有触发器,当所述第一二维表发生插入、更新或删除操作时,更新所述第一时间戳。
[0012]在上述方法中,优选地,判断是否需要生成或更新所述第二二维表包括以下步骤:
[0013]从关系数据库读取所述第一二维表的第一时间戳,从Redis读取与所述第一二维
表对应的第二二维表的第二时间戳;
[0014]判断所述第二时间戳是否存在,如果所述第二时间戳不存在,则将所述第一二维表写入Redis生成所述第二二维表,并将所述第一时间戳写入所述第二二维表,形成所述第二时间戳;否则比较所述第一时间戳与所述第二时间戳的时间先后,如果所述第一时间戳在后,则根据所述第一二维表更新所述第二二维表及所述第二时间戳;如果所述第一时间戳与所述第二时间戳相同,则不需要更新所述第二二维表。
[0015]在上述方法中,优选地,将查询关系数据库获得的所述记录以及查询索引写入Redis生成或更新所述第二二维表,包括以下内容:
[0016]第二时间戳,用于标识是否需要更新所述第二二维表;
[0017]记录总数,用于查询所述第二二维表;
[0018]列名称;
[0019]记录内容,其键为所述第二二维表中的记录的下标;
[0020]查询索引,用于快速定位所述第二二维表中满足指定的列的记录。
[0021]在上述方法中,优选地,在Redis上存储所述第二二维表的列名称时,使用分隔符将所述第二二维表中所有的列名称拼接起来作为一个字符串进行存储;将所述第二二维表中的每行记录的键设置为下标,各个字段的值使用分隔符,将各个字段的值拼接起来作为一个字符串进行存储。
[0022]在上述方法中,优选地,开始向Redis写入第二二维表时,首先使用WATHCH命令,写入完成后使用EXEX提交事务。
[0023]在上述方法中,优选地,查询所述第二二维表的方法如下:先读取所述第二二维表的记录总数,接着取出字段名称,根据所述第二二维表的记录总数,对记录下标进行循环遍历,取出所述第二二维表中的所有记录。
[0024]在上述方法中,根据列对所述第二二维表进行查询的方法如下:先根据查询条件使用所述第二二维表的查询索引获取记录下标,接着取出字段名称,最后根据记录下标取出指定的记录。
[0025]本专利技术还提供了一种关系数据库的高效查询装置,包括:
[0026]二维表创建模块,用于将查询关系数据库获得的记录写入第一二维表并将所述第一二维表写入Redis生成第二二维表,所述第二二维表作为所述第一二维表的缓存;
[0027]时间戳生成模块,用于在生成所述第一二维表时生成第一时间戳,并将所述第一时间戳与所述第一二维表的映射关系构造第三二维表保存在关系数据库中;将所述第一时间戳写入所述第二二维表,形成所述第二时间戳;
[0028]时间戳更新模块,用于所述第一二维表发生插入、更新或删除操作时,更新所述第一时间戳;根据所述第一时间戳,更新所述第二时间戳;
[0029]比较模块,用于比较所述第一时间戳与所述第二时间戳的时间先后,判断所述第二二维表是否需要生成或更新,无所述第二时间戳视为所述第一时间戳在后;
[0030]第二二维表更新模块,用于根据比较模块得出的所述第二二维表是否需要生成或更新的结果,如果所述第二二维表需要更新,则根据查询条件从关系数据库读取满足查询条件的记录,然后将该记录以及查询索引写入Redis更新所述第二二维表;否则,不更新所述第二二维表。
[0031]在上述装置中,优选地,关系数据库上设有触发器,当所述第一二维表发生插入、更新或删除操作时,通过所述触发器更新所述第一时间戳。
[0032]由上述技术方案可知,本专利技术提供的一种关系数据库的高效查询方法和装置,解决了现有关系型数据库查询方法,对数据库造成较大压力,查询效率较低的问题。与现有技术相比,本专利技术具有以下有益效果:
[0033]在Redis上创建二维表作为关系数据库的缓存,通过比较Redis上的二维表的时间戳和关系数据库上的二维表的时间戳的先后,判断是否需要更新Redis上的二维表,如果需要,则根据查询条件从读取关系数据库二维表,获取满足查询条件的记录,然后将关系数据库二维表以及查询索引等数据写入Redis;否则,直接从Redis查询满足指定条件的记录。由于部分记录可以从Redis缓存的二维表中查询获得,因此,减轻了关系数据库的压力,提高了查询效率。
附图说明
[0034]为了更清楚地说明本专利技术的实施例或现有技术中的技术方案,下面将对本专利技术实施例或现有技术描述中所需要使用的附图做出简单地介绍和说明。显本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种关系数据库的高效查询方法,其特征在于,包括以下步骤:将查询关系数据库获得的记录写入第一二维表并将所述第一二维表写入Redis生成第二二维表,所述第二二维表作为所述第一二维表的缓存,所述关系数据库上保存有第一二维表生成或更新时的第一时间戳;所述第二二维表中保存有所述第二二维表生成或更新时的第二时间戳;根据所述第一时间戳更新所述第二时间戳;通过比较所述第一时间戳与所述第二时间戳的时间先后,判断所述二维表是否需要生成或更新,无所述第二时间戳视为所述第一时间戳在后;如果所述第二二维表需要生成或更新,则根据查询条件从关系数据库读取满足查询条件的记录,然后将该记录以及查询索引写入Redis生成或更新所述第二二维表;否则,不更新所述第二二维表,从所述第二二维表中查询满足查询条件的记录。2.根据权利要求1所述的方法,其特征在于,将关系数据库中的记录写入所述第一二维表时,生成所述第一时间戳,并将所述第一时间戳与所述第一二维表的映射关系构造第三二维表,保存在关系数据库中;关系数据库上设有触发器,当所述第一二维表发生插入、更新或删除操作时,更新所述第一时间戳。3.根据权利要求2所述的方法,其特征在于,判断是否需要生成或更新所述第二二维表包括以下步骤:从关系数据库读取所述第一二维表的第一时间戳,从Redis读取与所述第一二维表对应的第二二维表的第二时间戳;判断所述第二时间戳是否存在,如果所述第二时间戳不存在,则将所述第一二维表写入Redis生成所述第二二维表,并将所述第一时间戳写入所述第二二维表,形成所述第二时间戳;否则比较所述第一时间戳与所述第二时间戳的时间先后,如果所述第一时间戳在后,则根据所述第一二维表更新所述第二二维表及所述第二时间戳;如果所述第一时间戳与所述第二时间戳相同,则不需要更新所述第二二维表。4.根据权利要求1所述的方法,其特征在于,将查询关系数据库获得的所述记录以及查询索引写入Redis生成或更新所述第二二维表,包括以下内容:第二时间戳,用于标识是否需要更新所述第二二维表;记录总数,用于查询所述第二二维表;列名称;记录内容,其键为所述第二二维表中的记录的下标;查询索引,用于快速定位所述第二二维表中满足指定的列的记录。5.根据权利...

【专利技术属性】
技术研发人员:李浩罗多多
申请(专利权)人:广发基金管理有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1