数据查询方法及系统和数据读取方法及系统技术方案

技术编号:14549807 阅读:129 留言:0更新日期:2017-02-04 22:53
本发明专利技术提供一种数据查询方法及系统,所述方法包括:根据当前用于查询操作的结构化查询语言SQL语句以及参数集计算出标识符;将计算出的标识符与缓存的索引值进行匹配以查询所述缓存中是否存有与所述SQL语句以及参数集对应的查询结果。实施本发明专利技术,可以通过基于SQL语句以及参数集计算出的标识符直接在SQL语句以及参数层面上在缓存中进行查询操作。

Data inquiry method and system, data reading method and system

The invention provides a data query method and system, wherein the method comprises the following steps: according to the current query operation for structured query language SQL statement and parameter set to calculate the identifier; the identifier and the cache of the calculated index values are matched to the query cache is not being corresponding with the SQL statement and parameter set the query results. The invention can carry out the query operation in the SQL statement and the parameter level directly through the SQL statement and the parameter set.

【技术实现步骤摘要】

本专利技术涉及通信领域,更为具体而言,涉及数据查询方法及系统和数据读取方法及系统
技术介绍
数据缓存是一种将数据库中的数据缓存到内存中的技术。目的是减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能。数据缓存作为数据库和应用层之间的数据访问中间件,提供了较强的数据访问性能,在各类大型应用中有着广泛的应用。目前常用的数据库访问框架已有部分包含数据缓存组件,它们对整表缓存提供了很好的支持,但对细化到SQL(StructuredQueryLanguage,结构化查询语言)语句层面的缓存没有提供支持,或者支持地不够灵活,从而导致应用程序难以直接在SQL语句以及参数层面上在缓存中进行查询操作。此外,目前常用的数据库访问框架对于进程级的数据缓存支持不够完善,需要第三方插件来完成,然而第三方插件通常因并发访问问题而导致应用层可能读取到脏数据。对于金融业务系统而言,特别是涉及大量账务处理的银行系统而言,脏数据将对系统的正常运行带来严重后果。
技术实现思路
为解决上述技术问题,本专利技术提供一种数据查询方法及系统以及一种数据读取方法及系统。一方面,本专利技术的实施方式提供了一种数据查询方法,所述方法包括:根据当前用于查询操作的结构化查询语言SQL语句以及参数集计算出标识符;将计算出的标识符与缓存的索引值进行匹配以查询所述缓存中是否存有与所述SQL语句以及参数集对应的查询结果。>相应地,本专利技术实施方式提供了一种数据查询系统,所述系统包括:计算模块,用于根据当前用于查询操作的SQL语句以及参数集计算出标识符;缓存查询模块,用于将所述计算模块计算出的标识符与缓存的索引值进行匹配以查询所述缓存中是否存有与所述SQL语句以及参数集对应的查询结果。实施本专利技术提供的数据查询方法及系统,可以通过基于SQL语句以及参数集计算出的标识符直接在SQL语句以及参数层面上在缓存中进行查询操作。另一方面,本专利技术的实施方式提供了一种数据读取方法,所述方法包括:判断当前用于查询操作的SQL语句的查询结果集是否适合存储在缓存中;若判定为所述SQL语句的查询结果集不适合存储在缓存中,则查询数据库中是否存有与所述SQL语句以及当前用于查询操作的参数集对应的查询结果;若所述数据库中存有所述查询结果,则从所述数据库中读取所述查询结果。相应地,本专利技术实施方式提供了一种数据读取系统,所述系统包括:第一判断模块,用于判断当前用于查询操作的SQL语句的查询结果集是否适合存储在缓存中;数据库查询模块,用于在所述第一判断模块判定为所述SQL语句的查询结果集不适合存储在缓存中的情形下,查询数据库中是否存有与所述SQL语句以及当前用于查询操作的参数集对应的查询结果;数据库读取模块,用于在所述数据库查询模块查询出所述数据库中存有所述查询结果的情形下,从所述数据库中读取所述查询结果。实施本专利技术提供的数据读取方法及系统,在进行查询操作前先判断当前用于查询操作的SQL语句的查询结果集是否适合存储在缓存中,对于其查询结果集不适合存储在缓存中的SQL语句改为从数据库中读取查询结果,从而有效地防止从缓存中读取到脏数据。附图说明图1是根据本专利技术实施方式的一种数据查询方法的流程图;图2示出了图1所示的处理S1的一种实施方式;图3是根据本专利技术实施方式的另一种数据查询方法的流程图;图4是根据本专利技术实施方式的一种数据查询系统的结构示意图;图5示出了图4所示的计算模块1的结构示意图;图6是根据本专利技术实施方式的一种数据读取方法的流程图;图7是根据本专利技术实施方式的一种数据读取系统的结构示意图。具体实施方式为使本专利技术的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述。图1是根据本专利技术实施方式的一种数据查询方法的流程图。参见图1,所述方法包括:S1:根据当前用于查询操作的SQL语句以及参数集计算出标识符。S2:将计算出的标识符与缓存的索引值进行匹配以查询所述缓存中是否存有与所述SQL语句以及参数集对应的查询结果。在本专利技术的实施方式中,所述缓存有存储的查询结果可以设置有有效期(是应用层根据业务需要进行设定的)。如图2所示,处理S1具体可以通过以下方式实现:S11:将所述SQL语句以及参数集按照预定顺序进行拼装以得到拼装结果串。在本专利技术的实施方式中,可以将参数集中的各参数按照由尾到首的顺序进行拼装。例如,SQL语句为select*frombc_branchwherebranchid=?andsubbranchid=?,参数集为{“440000000”,“440201000”本文档来自技高网...

【技术保护点】
一种数据查询方法,其特征在于,所述方法包括:根据当前用于查询操作的结构化查询语言SQL语句以及参数集计算出标识符;将计算出的标识符与缓存的索引值进行匹配以查询所述缓存中是否存有与所述SQL语句以及参数集对应的查询结果。

【技术特征摘要】
1.一种数据查询方法,其特征在于,所述方法包括:
根据当前用于查询操作的结构化查询语言SQL语句以及参数集计算出标
识符;
将计算出的标识符与缓存的索引值进行匹配以查询所述缓存中是否存有
与所述SQL语句以及参数集对应的查询结果。
2.如权利要求1所述的方法,其特征在于,根据当前用于查询操作的SQL
语句以及参数集计算出标识符包括:
将所述SQL语句以及参数集按照预定顺序进行拼装以得到拼装结果串;
计算拼装出的拼装结果串的哈希码,以计算出的哈希码作为所述标识符。
3.如权利要求2所述的方法,其特征在于,
对于参数集按照以下顺序拼装:将参数集中的各参数按照从尾到首的顺
序进行拼装。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
若所述缓存中存有所述查询结果,则从所述缓存中读取所述查询结果并
调整所述查询结果在所述缓存中的访问次数。
5.如权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
若所述缓存中未存有所述查询结果,则查询数据库中是否存有所述查询
结果。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
若所述数据库中存有所述查询结果,则从所述数据库中读取所述查询结
果并将所述查询结果存储到所述缓存中。
7.如权利要求1至3中任一项所述的方法,其特征在于,
所述缓存中存储的查询结果设置有有效期。
8.如权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
在执行所述根据当前用于查询操作的SQL语句以及参数集计算出标识符
的处理前,判断所述SQL语句的查询结果集是否适合存储在所述缓存中,若判
定为所述SQL语句的查询结果集适合存储在所述缓存中,则执行下述处理:根
据当前用于查询操作的SQL语句以及参数集计算出标识符。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
若判定为所述SQL语句的查询结果集不适合存储在所述缓存中,则查询所
述数据库中是否存有所述查询结果。
10.如权利要求8所述的方法,其特征在于,判断所述SQL语句的查询结
果集是否适合存储在所述缓存中包括:
从表维度和/或查询关键字维度判断所述SQL语句的查询结果集是否适合
存储在所述缓存中。
11.一种数据查询系统,其特征在于,所述系统包括:
计算模块,用于根据当前用于查询操作的SQL语句以及参数集计算出标识
符;
缓存查询模块,用于将所述计算模块计算出的标识符与缓存的索引值进
行匹配以查询所述缓存中是否存有与所述SQL语句以及参数集对应的查询结
果。
12.如权利要求11所述的系统,其特征在于,所述计算模块包括:
拼装单元,用于将所述SQL语句以及参数集按照预定顺序进行拼装以得到
拼装结果串;
计算单元,用于计算所述拼装单元拼装出的拼装结果串的哈希码,以计
算出的哈希码作为所述标识符。
13.如权利要求11或12所述的系统,其特征在于,
所述缓存中存储的查询结果设置有有效期。
14.如权利要求11或12所述的系统,其特征在于,所述系统还包括:
读取及调整模块,用于执行下述操作:在所述缓存查询模块查询出所述
缓存中存有所述查询结果的情形下,从所述缓存中读取所述查询结果并调整
所述查询结果在所述缓存中的访问次数。
15.如权利要求11或12所述的系统,其特征在于,所述系统还包括:
数据库查询模块,用于执行下述操作:在所述缓存查询模块查询出所述
缓存中未存有所述查询结果的情形下,查询数据库中是否存有所述查询结果。
16.如权利要求15所述的系统,其特征在于,所述系统还包括:
读取及存储模块,用于执行下述操作:在所述数据库查询模块查询出所
述数据库中存有所述查询结果的情形下,从所述数据库中读取所述查询结果
并将所述查询结果存储到所述缓存中。
17.如权利要求15所述的系统,其特征在于,所述...

【专利技术属性】
技术研发人员:程浩刘继忠杨靖
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:北京;11

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

1