CN105512222A - 数据查询方法及系统和数据读取方法及系统 - Google Patents
数据查询方法及系统和数据读取方法及系统 Download PDFInfo
- Publication number
- CN105512222A CN105512222A CN201510856716.6A CN201510856716A CN105512222A CN 105512222 A CN105512222 A CN 105512222A CN 201510856716 A CN201510856716 A CN 201510856716A CN 105512222 A CN105512222 A CN 105512222A
- Authority
- CN
- China
- Prior art keywords
- query
- buffer memory
- query result
- sql statement
- module
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2443—Stored procedures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据查询方法及系统,所述方法包括:根据当前用于查询操作的结构化查询语言SQL语句以及参数集计算出标识符;将计算出的标识符与缓存的索引值进行匹配以查询所述缓存中是否存有与所述SQL语句以及参数集对应的查询结果。实施本发明,可以通过基于SQL语句以及参数集计算出的标识符直接在SQL语句以及参数层面上在缓存中进行查询操作。
Description
技术领域
本发明涉及通信领域,更为具体而言,涉及数据查询方法及系统和数据读取方法及系统。
背景技术
数据缓存是一种将数据库中的数据缓存到内存中的技术。目的是减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能。数据缓存作为数据库和应用层之间的数据访问中间件,提供了较强的数据访问性能,在各类大型应用中有着广泛的应用。
目前常用的数据库访问框架已有部分包含数据缓存组件,它们对整表缓存提供了很好的支持,但对细化到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”},则拼装结果串为select*frombc_branchwherebranchid=?andsubbranchid=?|440201000|440000000。
S12:计算拼装出的拼装结果串的哈希码,以计算出的哈希码作为所述标识符。
本发明的实施方式采用各参数按照由尾到首的顺序进行拼装的方式,一方面提高了定位结果集的速度,另一方面降低了各索引值的HashCode(哈希码)冲突概率。开发人员在编写SQL语句的where(条件)子句时习惯把常用条件放在前边,导致将各参数按照由首到尾的方式拼接时前部分基本相同,从而使得HashCode的冲突概率比较高,为此,本发明的实施方式将各参数按照由尾到首的顺序进行拼装。
在本发明的实施方式中,若处理S2的结果为所述缓存中存有所述查询结果,则从所述缓存中读取所述查询结果并调整所述查询结果在所述缓存中的访问次数,例如将所述访问次数加1;若处理S2的结果为所述缓存中未存有所述查询结果,则查询数据库中是否存有所述查询结果,若所述数据库中存有所述查询结果,则从所述数据库中读取所述查询结果并将所述查询结果存储到所述缓存中。
在本发明的实施方式中,在执行处理S1前,可以判断所述SQL语句的查询结果集是否适合存储在所述缓存中,若判定为所述SQL语句的查询结果集适合存储在所述缓存中,则执行所述处理S1,若判定为所述SQL语句的结果集不适合存储在所述缓存中,则查询所述数据库中是否存有所述查询结果。其中,可以从表维度和/或查询关键字维度判断所述SQL语句的查询结果集是否适合存储在所述缓存中。上述SQL语句的查询结果集包括了该SQL语句下的全部查询结果。
在本发明的实施方式中,上述缓存例如是在内存中建立一组缓存容器数组,数组中每个容器初始化一个缓存对象,每个缓存对象中可存储多个缓存单元,缓存单元是查询结果的基本存储单元,即每个缓存单元中存储一个SQL查询的查询结果。
为加速定位到查询结果所在的容器,在本发明的实施方式中对容器的寻址基于Hash(哈希)散列实现。具体地,首先将SQL语句及其参数集中的各个参数拼装成拼装结果串,计算出该拼装结果串的HashCode,然后对该HashCode取模,根据模值选择对应的容器。例如,已建立了10个容器数组,SQL语句及其参数集的HashCode值为38191812,对HashCode取模38191812%10为2,则使用索引为2的容器。如果通过上述散列算法定位到的容器中存储有需要的查询结果,则直接读取该查询结果并将读取到的查询结果返回给应用程序,否则,从数据库中读取该查询结果并将读取到的查询结果返回给应用程序,同时将读取到的查询结果存储到相应的缓存单元中。
图3是根据本发明实施方式的另一种数据查询方法的流程图。如图3所示,所述方法包括:
S10:判断当前用于查询操作的SQL语句的查询结果集是否适合存储在缓存中,若是,则执行S20,若否,则跳转到S180。
例如,可以从表维度和/或查询关键字维度进行上述判断。具体地,解析SQL语句中的表名和where子句中的各个字段,识别解析出的表名是否在禁用表配置参数(记录了禁止进行缓存的表,例如,客户账务变更历史表等对数据的实时性要求较高的表)中,若是,则判定该SQL语句的查询结果集不适合存储在所述缓存中,否则,继续判断在解析出的各个字段中是否至少有一个字段在禁用字段配置参数(记录了禁止进行缓存的字段,例如,账号等对于数据的实时性要求较高的字段)中,若是,则判定该SQL语句的查询结果集不适合存储在所述缓存中,否则,判定该SQL语句的查询结果集适合存储在所述缓存中。
S20:识别缓存容器数组是否为空,若否,则执行S30,若是,则跳转到S50。
S30:识别所述缓存容器的数量是否变化,若是,则执行S40,若否,则跳转到S60。
S40:清空所述缓存容器数组中的各缓存容器。
S50:初始化所述缓存容器数组。
S60:对所述SQL语句以及当前用于查询操作的参数集进行拼装。
S70:计算拼装出的拼装结果串的HashCode,根据缓存容器的数量计算出该HashCode的模,根据该模定位缓存容器。
S80:根据该HashCode查询定位到的缓存容器中是否存有与所述SQL语句以及所述参数集对应的查询结果,若是,则执行S90,若否,则跳转到S140。
S90:识别所述查询结果是否过期,若否,则执行S100,若是,则跳转到S120。
S100:从缓存中读取所述查询结果并将读取到的查询结果返回给应用程序。
S110:对缓存中所述查询结果的访问次数加1,并结束当前的处理流程。
当然,本领域的技术人员也可以在执行上述处理S110后返回处理S10。
S120:删除缓存中的所述查询结果。
S130:从数据库中读取所述查询结果,将读取到查询结果存储到缓存中并将该读取到的查询结果返回给应用程序,结束当前的处理流程。
S140:识别该定位到的缓存容器是否已满,若是,则执行S150,若否,则返回执行S130。
S150:识别该缓存容器中是否存有已过期的查询结果,若是,则执行S160,若否,则执行S170。
S160:在各已过期的查询结果中随机删除一项,并返回执行S130。
S170:在该缓存容器中删除一项临近过期且访问次数最少的查询结果,返回执行S130。
上述临近过期的查询结果是指当前时间距离其有效期截止时间的时间长度小于或等于预定阈值的查询结果,上述访问次数最少的查询结果是指在给定的查询结果的集合中,访问次数小于或者等于该集合中的其它任何一个元素的访问次数的查询结果。
S180:从数据库中读取所述查询结果并将读取到的查询结果返回给应用程序,并结束当前的处理流程。
在本发明的实施方式中,将读取到的查询结果存储到缓存中后,对该存储的查询结果设置有效期并初始访问次数为0。其中,缓存容器中的每个缓存单元独立管理本单元的空间是否被占用、有效期、访问次数以及清理策略。
图4是根据本发明实施方式的一种数据查询系统的结构示意图。参见图4,所述系统10包括:计算模块1以及缓存查询模块2,具体地:
计算模块1用于根据当前用于查询操作的SQL语句以及参数集计算出标识符。
缓存查询模块2用于将所述计算模块1计算出的标识符与缓存的索引值进行匹配以查询所述缓存中是否存有与所述SQL语句以及参数集对应的查询结果。
其中,在本发明的实施方式中,所述缓存中存储的查询结果设置有有效期。
图5示出了图4所示的计算模块1的结构示意图。如图5所示,该计算模块1包括:拼装单元11和计算单元12,具体地,
拼装单元11用于将所述SQL语句以及参数集按照预定顺序进行拼装以得到拼装结果串。
计算单元12用于计算所述拼装单元11拼装出的拼装结果串的哈希码,以计算出的哈希码作为所述标识符。
在本发明的实施方式中,该系统10还可以包括读取及调整模块,该读取及调整模块用于在所述缓存查询模块2查询出所述缓存中存有所述查询结果的情形下,从所述缓存中读取所述查询结果并调整所述查询结果在所述缓存中的访问次数。
在本发明的实施方式中,该系统10还可以包括:判断模块,该判断模块用于判断所述SQL语句的查询结果集是否适合存储在所述缓存中。同时,所述计算模块1用于在所述判断模块判定为所述SQL语句的查询结果集适合存储在所述缓存中的情形下,执行下述处理:根据当前用于查询操作的SQL语句以及参数集计算出标识符。
在本发明的实施方式中,该系统10还可以包括数据库查询模块,该数据库查询模块包括:用于在所述缓存查询模块2查询出所述缓存中未存有所述查询结果的情形下,查询数据库中是否存有所述查询结果的第一查询单元,以及用于在所述判断模块判定为所述SQL语句的查询结果集不适合存储在所述缓存中的情形下,查询数据库中是否存有所述查询结果的第二查询单元。
在本发明的实施方式中,该系统10还可以包括读取及存储模块,该读取及存储模块用于在所述第一查询单元查询出所述数据库中存有所述查询结果的情形下,从所述数据库中读取所述查询结果并将所述查询结果存储到所述缓存中。
图6是根据本发明实施方式的一种数据读取方法的流程图。参见图6,所述方法包括:
S100:判断当前用于查询操作的SQL语句的查询结果集是否适合存储在缓存中,若否,则执行S200,若是,则跳转到S400。
在本发明的实施方式中,可以从表维度和/或查询关键字维度判断所述SQL语句的查询结果集是否适合存储在所述缓存中。
S200:查询数据库中是否存有与所述SQL语句以及当前用于查询操作的参数集对应的查询结果,若是,则执行S300,若否,则结束当前的处理流程。
S300:从所述数据库中读取所述查询结果,并结束当前的处理流程。
S400:查询所述缓存中是否存有所述查询结果,若是,则执行S500,若否,则结束当前的处理流程。
S500:从所述缓存中读取所述查询结果,并结束当前的处理流程。
在本发明的实施方式中,在执行处理S500前,可以判断在所述缓存中所述查询结果是否过期,若未过期,则执行S500,若已过期,则从所述缓存中删除所述查询结果并从所述数据库中读取所述查询结果。此外,还可以将从所述数据库中读取的所述查询结果存储到所述缓存中。
图7是根据本发明实施方式的一种数据读取系统的结构示意图。参见图7,所述系统1000包括:第一判断模块100、数据库查询模块200以及数据库读取模块300,具体地:
第一判断模块100用于判断当前用于查询操作的SQL语句的查询结果集是否适合存储在缓存中;
数据库查询模块200用于在所述第一判断模块10判定为所述SQL语句的查询结果集不适合存储在缓存中的情形下,查询数据库中是否存有与所述SQL语句以及当前用于查询操作的参数集对应的查询结果;
数据库读取模块300用于在所述数据库查询模块200查询出所述数据库中存有所述查询结果的情形下,从所述数据库中读取所述查询结果。
在本发明的实施方式中,该系统1000还可以包括:缓存查询模块以及缓存读取模块,具体地:
缓存查询模块用于在所述第一判断模块判定为所述SQL语句的查询结果集适合存储在缓存中的情形下,查询所述缓存中是否存有所述查询结果;
缓存读取模块用于在所述缓存查询模块查询出所述缓存中存有所述查询结果的情形下,从所述缓存中读取所述查询结果。
在本发明的实施方式中,该系统1000还可以包括第二判断模块,该第二判断模块用于在所述缓存查询模块查询出所述缓存中存有所述查询结果的情形下,判断在所述缓存中所述查询结果是否过期。同时,上述的缓存读取模块用于在所述第二判断模块判定为未过期的情形下,执行下述处理:从所述缓存中读取所述查询结果。
在本发明的实施方式中,该系统1000还可以包括删除及读取模块,该删除及读取模块用于在所述第二判断模块判定为已过期的情形下,从所述缓存中删除所述查询结果并从所述数据库中读取所述查询结果。
在本发明的实施方式中,该系统1000还可以包括存储模块,该存储模块用于将所述删除及读取模块所读取的所述查询结果存储到所述缓存中。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
Claims (29)
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所述的系统,其特征在于,所述系统还包括:
判断模块,用于判断所述SQL语句的查询结果集是否适合存储在所述缓存中;
其中,所述计算模块在所述判断模块判定为所述SQL语句的查询结果集适合存储在所述缓存中的情形下,执行下述处理:根据当前用于查询操作的SQL语句以及参数集计算出标识符。
18.如权利要求17所述的系统,其特征在于,
所述数据库查询模块还在所述判断模块判定为所述SQL语句的查询结果集不适合存储在所述缓存中的情形下,执行下述处理:查询数据库中是否存有所述查询结果。
19.一种数据读取方法,其特征在于,所述方法包括:
判断当前用于查询操作的SQL语句的查询结果集是否适合存储在缓存中;
若判定为所述SQL语句的查询结果集不适合存储在缓存中,则查询数据库中是否存有与所述SQL语句以及当前用于查询操作的参数集对应的查询结果;
若所述数据库中存有所述查询结果,则从所述数据库中读取所述查询结果。
20.如权利要求19所述的方法,其特征在于,判断当前用于查询操作的SQL语句的查询结果集是否适合存储在缓存中包括:
从表维度和/或查询关键字维度判断当前用于查询操作的SQL语句的查询结果集是否适合存储在缓存中。
21.如权利要求19或20所述的方法,其特征在于,所述方法还包括:
若判定为所述SQL语句的查询结果集适合存储在缓存中,则查询所述缓存中是否存有所述查询结果;
若所述缓存中存有所述查询结果,则从所述缓存中读取所述查询结果。
22.如权利要求21所述的方法,其特征在于,所述方法还包括:
在执行所述从所述缓存中读取所述查询结果的处理前,判断在所述缓存中所述查询结果是否过期;
若未过期,则执行下述处理:从所述缓存中读取所述查询结果。
23.如权利要求22所述的方法,其特征在于,所述方法还包括:
若已过期,则从所述缓存中删除所述查询结果并从所述数据库中读取所述查询结果。
24.如权利要求23所述的方法,其特征在于,所述方法还包括:
在执行所述从所述数据库中读取所述查询结果的处理后,将从所述数据库中读取的所述查询结果存储到所述缓存中。
25.一种数据读取系统,其特征在于,所述系统包括:
第一判断模块,用于判断当前用于查询操作的SQL语句的查询结果集是否适合存储在缓存中;
数据库查询模块,用于执行下述操作:在所述第一判断模块判定为所述SQL语句的查询结果集不适合存储在缓存中的情形下,查询数据库中是否存有与所述SQL语句以及当前用于查询操作的参数集对应的查询结果;
数据库读取模块,用于在所述数据库查询模块查询出所述数据库中存有所述查询结果的情形下,从所述数据库中读取所述查询结果。
26.如权利要求25所述的系统,其特征在于,所述系统还包括:
缓存查询模块,用于在所述第一判断模块判定为所述SQL语句的查询结果集适合存储在缓存中的情形下,查询所述缓存中是否存有所述查询结果;
缓存读取模块,用于执行下述操作:在所述缓存查询模块查询出所述缓存中存有所述查询结果的情形下,从所述缓存中读取所述查询结果。
27.如权利要求26所述的系统,其特征在于,
所述系统还包括:
第二判断模块,用于在所述缓存查询模块查询出所述缓存中存有所述查询结果的情形下,判断在所述缓存中所述查询结果是否过期;
其中,所述缓存读取模块在所述第二判断模块判定为未过期的情形下,执行下述处理:从所述缓存中读取所述查询结果。
28.如权利要求27所述的系统,其特征在于,所述系统还包括:
删除及读取模块,用于执行下述操作:在所述第二判断模块判定为已过期的情形下,从所述缓存中删除所述查询结果并从所述数据库中读取所述查询结果。
29.如权利要求28所述的系统,其特征在于,所述系统还包括:
存储模块,用于将所述删除及读取模块所读取的所述查询结果存储到所述缓存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510856716.6A CN105512222A (zh) | 2015-11-30 | 2015-11-30 | 数据查询方法及系统和数据读取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510856716.6A CN105512222A (zh) | 2015-11-30 | 2015-11-30 | 数据查询方法及系统和数据读取方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105512222A true CN105512222A (zh) | 2016-04-20 |
Family
ID=55720204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510856716.6A Pending CN105512222A (zh) | 2015-11-30 | 2015-11-30 | 数据查询方法及系统和数据读取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105512222A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145549A (zh) * | 2017-04-27 | 2017-09-08 | 深圳智高点知识产权运营有限公司 | 一种数据库缓存控制方法以及系统 |
CN108228646A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于访问数据的方法和电子设备 |
CN108280227A (zh) * | 2018-01-26 | 2018-07-13 | 北京奇虎科技有限公司 | 基于缓存的数据信息处理方法及装置 |
CN108737556A (zh) * | 2018-05-29 | 2018-11-02 | 郑州云海信息技术有限公司 | 一种处理rest请求的方法、装置及设备 |
CN109656958A (zh) * | 2018-12-18 | 2019-04-19 | 北京小米移动软件有限公司 | 数据查询方法以及系统 |
CN109871372A (zh) * | 2019-01-29 | 2019-06-11 | 公安部第一研究所 | 一种结合数据库调优和程序调优的方法 |
CN111506606A (zh) * | 2020-04-14 | 2020-08-07 | 深圳市金蝶天燕云计算股份有限公司 | 一种报表查询方法及相关设备 |
WO2023029592A1 (zh) * | 2021-08-30 | 2023-03-09 | 北京沃东天骏信息技术有限公司 | 数据处理的方法和装置 |
CN117493515A (zh) * | 2023-11-10 | 2024-02-02 | 北京云上曲率科技有限公司 | 基于聊天系统的分布式消息缓存方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968507A (zh) * | 2012-12-14 | 2013-03-13 | 中国银行股份有限公司 | 基于缓存表的数据查询方法 |
CN103064960A (zh) * | 2012-12-31 | 2013-04-24 | 华为技术有限公司 | 数据库查询方法及设备 |
CN103336849A (zh) * | 2013-07-24 | 2013-10-02 | 昆明理工大学 | 一种数据库检索系统中提高检索速度的方法及装置 |
CN104408073A (zh) * | 2014-10-31 | 2015-03-11 | 广州华多网络科技有限公司 | 数据操作方法和装置 |
CN104850509A (zh) * | 2015-04-27 | 2015-08-19 | 交通银行股份有限公司 | 一种银行业务数据内存缓存的操作方法及系统 |
CN104866531A (zh) * | 2015-04-27 | 2015-08-26 | 交通银行股份有限公司 | 快速访问银行客户信息数据的方法及系统 |
-
2015
- 2015-11-30 CN CN201510856716.6A patent/CN105512222A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968507A (zh) * | 2012-12-14 | 2013-03-13 | 中国银行股份有限公司 | 基于缓存表的数据查询方法 |
CN103064960A (zh) * | 2012-12-31 | 2013-04-24 | 华为技术有限公司 | 数据库查询方法及设备 |
CN103336849A (zh) * | 2013-07-24 | 2013-10-02 | 昆明理工大学 | 一种数据库检索系统中提高检索速度的方法及装置 |
CN104408073A (zh) * | 2014-10-31 | 2015-03-11 | 广州华多网络科技有限公司 | 数据操作方法和装置 |
CN104850509A (zh) * | 2015-04-27 | 2015-08-19 | 交通银行股份有限公司 | 一种银行业务数据内存缓存的操作方法及系统 |
CN104866531A (zh) * | 2015-04-27 | 2015-08-26 | 交通银行股份有限公司 | 快速访问银行客户信息数据的方法及系统 |
Non-Patent Citations (1)
Title |
---|
吴宪: ""分布式数据库查询优化的研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228646A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于访问数据的方法和电子设备 |
CN108228646B (zh) * | 2016-12-21 | 2022-02-08 | 伊姆西Ip控股有限责任公司 | 用于访问数据的方法和电子设备 |
CN107145549A (zh) * | 2017-04-27 | 2017-09-08 | 深圳智高点知识产权运营有限公司 | 一种数据库缓存控制方法以及系统 |
CN107145549B (zh) * | 2017-04-27 | 2020-01-14 | 深圳智高点知识产权运营有限公司 | 一种数据库缓存控制方法以及系统 |
CN108280227A (zh) * | 2018-01-26 | 2018-07-13 | 北京奇虎科技有限公司 | 基于缓存的数据信息处理方法及装置 |
CN108737556A (zh) * | 2018-05-29 | 2018-11-02 | 郑州云海信息技术有限公司 | 一种处理rest请求的方法、装置及设备 |
CN109656958A (zh) * | 2018-12-18 | 2019-04-19 | 北京小米移动软件有限公司 | 数据查询方法以及系统 |
CN109871372A (zh) * | 2019-01-29 | 2019-06-11 | 公安部第一研究所 | 一种结合数据库调优和程序调优的方法 |
CN109871372B (zh) * | 2019-01-29 | 2021-01-19 | 公安部第一研究所 | 一种结合数据库调优和程序调优的方法 |
CN111506606A (zh) * | 2020-04-14 | 2020-08-07 | 深圳市金蝶天燕云计算股份有限公司 | 一种报表查询方法及相关设备 |
WO2023029592A1 (zh) * | 2021-08-30 | 2023-03-09 | 北京沃东天骏信息技术有限公司 | 数据处理的方法和装置 |
CN117493515A (zh) * | 2023-11-10 | 2024-02-02 | 北京云上曲率科技有限公司 | 基于聊天系统的分布式消息缓存方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105512222A (zh) | 数据查询方法及系统和数据读取方法及系统 | |
CN100456311C (zh) | 用于实施基于内容的文件系统安全性的系统和方法 | |
US7788240B2 (en) | Hash mapping with secondary table having linear probing | |
TWI536184B (zh) | Application Method and System of Statistical Table Based on OLTP Environment | |
US20080059420A1 (en) | System and Method for Providing a Trustworthy Inverted Index to Enable Searching of Records | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
CN100437590C (zh) | 预取对象的方法 | |
CN104035923A (zh) | 查询数据的方法及装置 | |
CN101090401A (zh) | 一种群集环境下的数据缓存方法及系统 | |
CN110737682A (zh) | 一种缓存操作方法、装置、存储介质和电子设备 | |
CN106372266A (zh) | 一种基于切面和配置文件的云操作系统缓存及访问方法 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN107368608A (zh) | 基于arc替换算法的hdfs小文件缓存管理方法 | |
CN107656701A (zh) | 小文件读加速方法、系统、装置及计算机可读存储介质 | |
US20210286730A1 (en) | Method, electronic device and computer program product for managing cache | |
US8868618B2 (en) | Usage-optimized tables | |
CN113641681B (zh) | 一种空间自适应的海量数据查询方法 | |
CN113867627B (zh) | 一种存储系统性能优化方法及系统 | |
CN103559307A (zh) | 一种查询的缓存方法及装置 | |
US11853229B2 (en) | Method and apparatus for updating cached information, device, and medium | |
US10241927B2 (en) | Linked-list-based method and device for application caching management | |
CN117270794A (zh) | 一种基于Redis的数据存储方法、介质及设备 | |
CN111552438A (zh) | 一种对象写入的方法、装置、服务器和存储介质 | |
CN102004800A (zh) | Pdm系统中数据的查询方法及装置 | |
CN116450607A (zh) | 数据处理方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160420 |
|
RJ01 | Rejection of invention patent application after publication |