CN107145549B - 一种数据库缓存控制方法以及*** - Google Patents

一种数据库缓存控制方法以及*** Download PDF

Info

Publication number
CN107145549B
CN107145549B CN201710284987.8A CN201710284987A CN107145549B CN 107145549 B CN107145549 B CN 107145549B CN 201710284987 A CN201710284987 A CN 201710284987A CN 107145549 B CN107145549 B CN 107145549B
Authority
CN
China
Prior art keywords
query
mapping table
statement
updating
database
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.)
Active
Application number
CN201710284987.8A
Other languages
English (en)
Other versions
CN107145549A (zh
Inventor
李军
黄海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guozhi Digital Economy Shenzhen Co ltd
Original Assignee
Shenzhen Zhigaodian Intellectual Property Operation Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhigaodian Intellectual Property Operation Co Ltd filed Critical Shenzhen Zhigaodian Intellectual Property Operation Co Ltd
Priority to CN201710284987.8A priority Critical patent/CN107145549B/zh
Publication of CN107145549A publication Critical patent/CN107145549A/zh
Application granted granted Critical
Publication of CN107145549B publication Critical patent/CN107145549B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据库缓存控制方法以及***,方法包括:S0、在缓存中创建第一映射表、第二映射表、第三映射表;S1、针对每次的数据查询执行步骤S2,针对每次的数据更新执行步骤S3;S2、查询第一映射表,如第一映射表无查询结果则查询数据库,并基于数据库查询结果更新第一映射表以及基于查询所涉及到的表名更新第二映射表和第三映射表;S3、执行数据库更新后,基于更新所涉及到的表名更新第一映射表、第二映射表和第三映射表。本发明可以更精确地判断查询语句和更新语句之间的关系,每次执行更新操作后只清空局部真正关联的缓存,保留不关联的缓存,而不是大范围进行清空,能够提高缓存命中率、访问平均速度,提高开发效率,降低软件出错率,提升软件质量。

Description

一种数据库缓存控制方法以及***
技术领域
本发明涉及计算机领域,尤其涉及一种数据库缓存控制方法以及***。
背景技术
目前的大多数网页都是使用动态数据与静态样式生成,其中动态的数据常常保存在关系型数据库,比如Oracle,Mysql,Sqlserver等等。为了提高网页生成的速度,往往会使用数据库缓存技术,即从数据库查询出来的数据在本次生成网页后不马上销毁,而是存在一个能够快速读取的地方(比如内存),下次等这个网页再次被请求的时候,便可从缓存中快速取出这个数据,无需再次查询数据库,从而提高网页生成的速度,提高网站的吞吐量,降低用户等待的时间,提升用户体验。
从数据库查询数据需要传入查询语句和查询参数,缓存技术把查询语句和查询参数合在一起作为本次的查询关键字,在查询出结果后,存入键值对结构的缓存中。在之后的每次查询中,都使用当次的关键字到缓存中查找数据,假如存在数据则直接返回,不存在则执行数据库查询操作。
当缓存中的数据所对应的数据库中的数据被改变时,必须清空这个缓存数据,否则用户看到的将会是过时的数据。从数据库查询数据需要传入查询语句和查询参数,更新数据库需要传入更新语句和更新参数。缓存技术的关键点在于,如何判断一个更新操作是否影响了某个查询操作。
现在比较成熟且被大家接受的方案是把所有的查询语句和更新语句按照命名空间来分类,当执行了某个命名空间下的任意一条更新语句,则清空该命名空间下所有查询语句的缓存。开发人员必须保证更新语句只能更新本命名空间所覆盖的数据,而不能更新本命名空间之外的数据。
但是,在关系型数据库查询中,查询语句通常需要跨越多表,在这种错综复杂的情况下,很难把这些查询语句按照命名空间进行分类,最终大部分查询语句都会被分在同一个命名空间内,然后只要执行其中一条更新语句,所有的缓存便会清空,从而导致缓存命中率非常低,缓存技术起不到明显的效果。另外,在现有的技术下,由开发人员来使用命名空间的方式来声明查询语句与更新语句的关联关系,无形中也增加了工作难度,提高了出错的风险。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种数据库缓存控制方法以及***。
本发明解决其技术问题所采用的技术方案是:构造一种数据库缓存控制方法,包括:
S0、在缓存中创建以下映射表:查询关键字与结果数据一对一的第一映射表、查询语句和更新语句与表名一对多的第二映射表、表名与查询关键字一对多的第三映射表;其中,所述查询关键字由查询语句和查询参数组合得到;
S1、针对每次的数据查询执行步骤S2,针对每次的数据更新执行步骤S3;
S2、查询第一映射表,如第一映射表无查询结果则查询数据库,并基于数据库查询结果更新第一映射表以及基于查询所涉及到的表名更新第二映射表和第三映射表;
S3、执行数据库更新后,基于更新所涉及到的表名更新第一映射表、第二映射表和第三映射表。
在本发明所述的数据库缓存控制方法中,所述步骤S2具体包括:
S21、利用查询语句与查询参数组合得到查询关键字,基于该查询关键字查询缓存中的第一映射表,如果存在结果数据则返回该结果数据并结束本次查询;如果不存在结果数据,则执行步骤S22;
S22、基于查询语句与查询参数查询数据库,并把查询关键字作为键、数据库查询结果作为值保存到第一映射表;
S23、将查询语句作为键从第二映射表查找查询语句包含的所有表名,如果存在结果数据则跳到步骤S25,否则执行步骤S24;
S24、基于SQL语法规则解析查询语句,并获取查询语句包含的所有表名,并将查询语句作为键、查询语句包含的所有表名作为值保存到第二映射表;
S25、将查询语句包含的所有表名均作为键、查询关键字作为值保存至第三映射表。
在本发明所述的数据库缓存控制方法中,所述步骤S3具体包括:
S31、执行数据库更新操作;
S32、将更新语句作为键从第二映射表查找更新语句包含的所有表名,如果存在结果数据,则跳转至步骤S34,否则执行步骤S33;
S33、基于SQL语法规则解析更新语句,并获取更新语句包含的所有表名,并将更新语句作为键、更新语句包含的所有表名作为值保存到第二映射表;
S34、将更新语句包含的所有表名均作为键,从第三映射表查找所有的查询关键字;
S35、从第一映射表中清除查找到的查询关键字及其对应的结果数据;
S36、从第三映射表中清除更新语句包含的所有表名及其对应的查询关键字。
本发明还公开了一种数据库缓存控制***,包括:
初始化模块,用于在缓存中创建以下映射表:查询关键字与结果数据一对一的第一映射表、查询语句和更新语句与表名一对多的第二映射表、表名与查询关键字一对多的第三映射表;其中,所述查询关键字由查询语句和查询参数组合得到;
查询模块,用于针对每次的数据查询,查询第一映射表,如第一映射表无查询结果则查询数据库,并基于数据库查询结果更新第一映射表以及基于查询所涉及到的表名更新第二映射表和第三映射表;
更新模块,用于针对每次的数据更新,执行数据库更新后,基于更新所涉及到的表名更新第一映射表、第二映射表和第三映射表。
在本发明所述的数据库缓存控制***中,所述查询模块包括:
第一映射表查询子模块,用于利用查询语句与查询参数组合得到查询关键字,基于该查询关键字查询缓存中的第一映射表,如果存在结果数据则返回该结果数据并结束本次查询;如果不存在结果数据,则触发数据库查询子模块工作;
数据库查询子模块,用于基于查询语句与查询参数查询数据库,并将数据库查询结果发送至第一映射表更新子模块一;
第一映射表更新子模块一,用于把查询关键字作为键、数据库查询结果作为值保存到第一映射表,并触发第二映射表查询子模块一工作;
第二映射表查询子模块一,用于将查询语句作为键从第二映射表查找查询语句包含的所有表名,如果存在结果数据则触发第三映射表更新子模块工作,否则触发语句解析及第二映射表更新子模块一工作;
语句解析及第二映射表更新子模块一,用于基于SQL语法规则解析查询语句,并获取查询语句包含的所有表名,并将查询语句作为键、查询语句包含的所有表名作为值保存到第二映射表,并触发第三映射表更新子模块一工作;
第三映射表更新子模块一,用于将查询语句包含的所有表名均作为键、查询关键字作为值保存至第三映射表。
在本发明所述的数据库缓存控制***中,所述更新模块包括:
数据库更新子模块,用于执行数据库更新操作,并触发第二映射表查询子模块二工作;
第二映射表查询子模块二,用于将更新语句作为键从第二映射表查找更新语句包含的所有表名,如果存在结果数据,则触发第三映射表查询子模块工作,否则触发语句解析及第二映射表更新子模块二工作;
语句解析及第二映射表更新子模块二,用于基于SQL语法规则解析更新语句,并获取更新语句包含的所有表名,并将更新语句作为键、更新语句包含的所有表名作为值保存到第二映射表,并触发第三映射表查询子模块工作;
第三映射表查询子模块,用于将更新语句包含的所有表名均作为键,从第三映射表查找所有的查询关键字,并触发第一映射表更新子模块二工作;
第一映射表更新子模块二,用于从第一映射表中清除查找到的查询关键字及其对应的结果数据,并触发第三映射表更新子模块二工作;
第三映射表更新子模块二,用于从第三映射表中清除更新语句包含的所有表名及其对应的查询关键字。
实施本发明的数据库缓存控制方法以及***,具有以下有益效果:本发明在缓存中利用三个映射表存储查询数据,通过确定查询语句和更新语句所包含的表名,根据表名来存储或清除相关的缓存数据,如此可以更精确地判断查询语句和更新语句之间的关系,每次执行更新操作后只清空局部真正关联的缓存,保留不关联的缓存,而不是大范围进行清空,最终能够显著提高缓存命中率,提高数据访问平均速度,提升用户体验,降低软件开发难度,让开发人员专注业务逻辑开发,提高开发效率,降低软件出错率,提升软件质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图:
图1是本发明的数据库缓存控制方法的流程图;
图2是较佳实施例在数据查询时的流程图;
图3是较佳实施例在数据更新时的流程图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的典型实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本说明书中使用的“第一”、“第二”等包含序数的术语可用于说明各种构成要素,但是这些构成要素不受这些术语的限定。使用这些术语的目的仅在于将一个构成要素区别于其他构成要素。例如,在不脱离本发明的权利范围的前提下,第一构成要素可被命名为第二构成要素,类似地,第二构成要素也可以被命名为第一构成要素。
为了更好的理解本发明的技术方案,下面将结合说明书附图以及具体的实施方式对本发明的技术方案进行详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
较佳实施例中的数据库缓存控制方法包括:
S0、在缓存中创建以下映射表:查询关键字与结果数据一对一的第一映射表、查询语句和更新语句与表名一对多的第二映射表、表名与查询关键字一对多的第三映射表;
其中,所述查询关键字由查询语句和查询参数组合得到。
本发明中的映射表即为键值对数据结构,可以通过键快速取得值。键值对分为一对一和一对多两种,其中一对一指的是一个键只能对应一个值,后面保存的值会覆盖之前的值;一对多则指的是一个键可以对应多个值,后面保存的值不会覆盖之前的值,而是同时存在,通过这个键可以获取到它对应的所有值。
S1、针对每次的数据查询执行步骤S2,针对每次的数据更新执行步骤S3;
S2、查询第一映射表,如第一映射表无查询结果则查询数据库,并基于数据库查询结果更新第一映射表以及基于查询所涉及到的表名更新第二映射表和第三映射表;
S3、执行数据库更新后,基于更新所涉及到的表名更新第一映射表、第二映射表和第三映射表。
下面结合附图1详细说明所述步骤S2,参考图1,步骤S2具体包括:
S21、利用查询语句与查询参数组合得到查询关键字,基于该查询关键字查询缓存中的第一映射表,如果存在结果数据则返回该结果数据并结束本次查询;如果不存在结果数据,则执行步骤S22;
S22、基于查询语句与查询参数查询数据库,并把查询关键字作为键、数据库查询结果作为值保存到第一映射表;
此处需要注意的是,即使数据库查询结果为空,也需要将查询为空作为一个查询结果添加到第一映射表,这样下次再次查询相同的内容时,则直接通过查询第一映射表即可获取查询结果,而无需再次查询数据库。
例如,如果数据库查询结果为空,可以在第一映射表中用DB-NULL表示数据库中不存在相应的结果数据。而第一映射表中不存在具体的查询关键字和结果数据时会用传统的NULL表示。即如果查询第一映射表返回NULL,则表示不存在结果数据需要查询数据库,如果返回DB-NULL则表示最终的结果数据为空。
S23、将查询语句作为键从第二映射表查找查询语句包含的所有表名,如果存在结果数据则跳到步骤S25,否则执行步骤S24;
S24、基于SQL语法规则解析查询语句,并获取查询语句包含的所有表名,并将查询语句作为键、查询语句包含的所有表名作为值保存到第二映射表;
例如,查询语句为SELECT*FROM tb-A,位于FROM后的tb-A即为表名。
S25、将查询语句包含的所有表名均作为键、查询关键字作为值保存至第三映射表。
下面结合附图2详细说明所述步骤S3,参考图2,步骤S3具体包括:
S31、执行数据库更新操作;
S32、将更新语句作为键从第二映射表查找更新语句包含的所有表名,如果存在结果数据,则跳转至步骤S34,否则执行步骤S33;
S33、基于SQL语法规则解析更新语句,并获取更新语句包含的所有表名,并将更新语句作为键、更新语句包含的所有表名作为值保存到第二映射表;
例如,DELETE FROM M_name WHERE v=b,其中位于M_name即为表名。
其中,基于SQL语法规则解析SQL语句为本领域常识,此处不再赘述。
S34、将更新语句包含的所有表名均作为键,从第三映射表查找所有的查询关键字;
S35、从第一映射表中清除查找到的查询关键字及其对应的结果数据;
S36、从第三映射表中清除更新语句包含的所有表名及其对应的查询关键字。
下面以结合具体的查询实例和更新实例说明本发明。
1)、查询实例
若执行以下查询语句:
select*from user u,company c where name="?"and c.userId=u.id;
参数1为Liudehua
则查询关键字为:
select*from user u,company c where name="?"and c.userId=u.id;Liudehua
本查询语句包含的表名为user和company两个表。
如果定义:
sql0=select*from user u,company c where name="?"and c.userId=u.id;
key0=select*from user u,company c where name="?"and c.userId=u.id;Liudehua
result0=本次查询结果
则:
映射表1将增加如下数据
key0->result0
映射表2将增加如下数据
sql0->user,company
映射表3将增加如下数据
user->key0
company->key0
如此,在缓存没有被清除的情况下,假如使用同样的查询语句和参数进行再次查询,则会从第一映射表1通过key0把result0直接找到,而无需再重复到数据库查询
2)、更新实例
若执行以下更新语句:
update user set age=50where name="?"
此语句包含了表user,则与user相关的数据将被清除
首先通过第三映射表查找到user->key0这条记录(实际情况可能不止一条记录),找到key0这个查询关键字;
然后清除第一映射表下的以下记录:key0->result0
最后清除第三映射表下的以下记录:user->key0
同理,语句delete from company where id="?"因为包含了company表,也会删除key0->result0这个缓存,但是语句delete from order where id="?"因为不涉及company表,则不会删除key0->result0这个缓存。
基于同一发明构思,本发明还公开了一种数据库缓存控制***,包括:
初始化模块,用于在缓存中创建以下映射表:查询关键字与结果数据一对一的第一映射表、查询语句和更新语句与表名一对多的第二映射表、表名与查询关键字一对多的第三映射表;其中,所述查询关键字由查询语句和查询参数组合得到;
查询模块,用于针对每次的数据查询,查询第一映射表,如第一映射表无查询结果则查询数据库,并基于数据库查询结果更新第一映射表以及基于查询所涉及到的表名更新第二映射表和第三映射表;
更新模块,用于针对每次的数据更新,执行数据库更新后,基于更新所涉及到的表名更新第一映射表、第二映射表和第三映射表。
具体的,所述查询模块包括:
第一映射表查询子模块,用于利用查询语句与查询参数组合得到查询关键字,基于该查询关键字查询缓存中的第一映射表,如果存在结果数据则返回该结果数据并结束本次查询;如果不存在结果数据,则触发数据库查询子模块工作;
数据库查询子模块,用于基于查询语句与查询参数查询数据库,并将数据库查询结果发送至第一映射表更新子模块一;
第一映射表更新子模块一,用于把查询关键字作为键、数据库查询结果作为值保存到第一映射表,并触发第二映射表查询子模块一工作;
第二映射表查询子模块一,用于将查询语句作为键从第二映射表查找查询语句包含的所有表名,如果存在结果数据则触发第三映射表更新子模块工作,否则触发语句解析及第二映射表更新子模块一工作;
语句解析及第二映射表更新子模块一,用于基于SQL语法规则解析查询语句,并获取查询语句包含的所有表名,并将查询语句作为键、查询语句包含的所有表名作为值保存到第二映射表,并触发第三映射表更新子模块一工作;
第三映射表更新子模块一,用于将查询语句包含的所有表名均作为键、查询关键字作为值保存至第三映射表。
具体的,所述更新模块包括:
数据库更新子模块,用于执行数据库更新操作,并触发第二映射表查询子模块二工作;
第二映射表查询子模块二,用于将更新语句作为键从第二映射表查找更新语句包含的所有表名,如果存在结果数据,则触发第三映射表查询子模块工作,否则触发语句解析及第二映射表更新子模块二工作;
语句解析及第二映射表更新子模块二,用于基于SQL语法规则解析更新语句,并获取更新语句包含的所有表名,并将更新语句作为键、更新语句包含的所有表名作为值保存到第二映射表,并触发第三映射表查询子模块工作;
第三映射表查询子模块,用于将更新语句包含的所有表名均作为键,从第三映射表查找所有的查询关键字,并触发第一映射表更新子模块二工作;
第一映射表更新子模块二,用于从第一映射表中清除查找到的查询关键字及其对应的结果数据,并触发第三映射表更新子模块二工作;
第三映射表更新子模块二,用于从第三映射表中清除更新语句包含的所有表名及其对应的查询关键字。
综上所述,实施本发明的数据库缓存控制方法以及***,具有以下有益效果:本发明在缓存中利用三个映射表存储查询数据,通过确定查询语句和更新语句所包含的表名,根据表名来存储或清除相关的缓存数据,如此可以更精确地判断查询语句和更新语句之间的关系,每次执行更新操作后只清空局部真正关联的缓存,保留不关联的缓存,而不是大范围进行清空,最终能够显著提高缓存命中率,提高数据访问平均速度,提升用户体验,降低软件开发难度,让开发人员专注业务逻辑开发,提高开发效率,降低软件出错率,提升软件质量。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (4)

1.一种数据库缓存控制方法,其特征在于,包括:
S0、在缓存中创建以下映射表:查询关键字与结果数据一对一的第一映射表、查询语句和更新语句与表名一对多的第二映射表、表名与查询关键字一对多的第三映射表;其中,所述查询关键字由查询语句和查询参数组合得到;
S1、针对每次的数据查询执行步骤S2,针对每次的数据更新执行步骤S3;
S2、查询第一映射表,如第一映射表无查询结果则查询数据库,并基于数据库查询结果更新第一映射表以及基于查询所涉及到的表名更新第二映射表和第三映射表;
S3、执行数据库更新后,基于更新所涉及到的表名更新第一映射表、第二映射表和第三映射表;
其中,所述步骤S2具体包括:
S21、利用查询语句与查询参数组合得到查询关键字,基于该查询关键字查询缓存中的第一映射表,如果存在结果数据则返回该结果数据并结束本次查询;如果不存在结果数据,则执行步骤S22;
S22、基于查询语句与查询参数查询数据库,并把查询关键字作为键、数据库查询结果作为值保存到第一映射表;
S23、将查询语句作为键从第二映射表查找查询语句包含的所有表名,如果存在结果数据则跳到步骤S25,否则执行步骤S24;
S24、基于SQL语法规则解析查询语句,并获取查询语句包含的所有表名,并将查询语句作为键、查询语句包含的所有表名作为值保存到第二映射表;
S25、将查询语句包含的所有表名均作为键、查询关键字作为值保存至第三映射表。
2.根据权利要求1所述的数据库缓存控制方法,其特征在于,所述步骤S3具体包括:
S31、执行数据库更新操作;
S32、将更新语句作为键从第二映射表查找更新语句包含的所有表名,如果存在结果数据,则跳转至步骤S34,否则执行步骤S33;
S33、基于SQL语法规则解析更新语句,并获取更新语句包含的所有表名,并将更新语句作为键、更新语句包含的所有表名作为值保存到第二映射表;
S34、将更新语句包含的所有表名均作为键,从第三映射表查找所有的查询关键字;
S35、从第一映射表中清除查找到的查询关键字及其对应的结果数据;
S36、从第三映射表中清除更新语句包含的所有表名及其对应的查询关键字。
3.一种数据库缓存控制***,其特征在于,包括:
初始化模块,用于在缓存中创建以下映射表:查询关键字与结果数据一对一的第一映射表、查询语句和更新语句与表名一对多的第二映射表、表名与查询关键字一对多的第三映射表;其中,所述查询关键字由查询语句和查询参数组合得到;
查询模块,用于针对每次的数据查询,查询第一映射表,如第一映射表无查询结果则查询数据库,并基于数据库查询结果更新第一映射表以及基于查询所涉及到的表名更新第二映射表和第三映射表;
更新模块,用于针对每次的数据更新,执行数据库更新后,基于更新所涉及到的表名更新第一映射表、第二映射表和第三映射表;
其中,所述查询模块包括:
第一映射表查询子模块,用于利用查询语句与查询参数组合得到查询关键字,基于该查询关键字查询缓存中的第一映射表,如果存在结果数据则返回该结果数据并结束本次查询;如果不存在结果数据,则触发数据库查询子模块工作;
数据库查询子模块,用于基于查询语句与查询参数查询数据库,并将数据库查询结果发送至第一映射表更新子模块一;
第一映射表更新子模块一,用于把查询关键字作为键、数据库查询结果作为值保存到第一映射表,并触发第二映射表查询子模块一工作;
第二映射表查询子模块一,用于将查询语句作为键从第二映射表查找查询语句包含的所有表名,如果存在结果数据则触发第三映射表更新子模块工作,否则触发语句解析及第二映射表更新子模块一工作;
语句解析及第二映射表更新子模块一,用于基于SQL语法规则解析查询语句,并获取查询语句包含的所有表名,并将查询语句作为键、查询语句包含的所有表名作为值保存到第二映射表,并触发第三映射表更新子模块一工作;
第三映射表更新子模块一,用于将查询语句包含的所有表名均作为键、查询关键字作为值保存至第三映射表。
4.根据权利要求3所述的数据库缓存控制***,其特征在于,所述更新模块包括:
数据库更新子模块,用于执行数据库更新操作,并触发第二映射表查询子模块二工作;
第二映射表查询子模块二,用于将更新语句作为键从第二映射表查找更新语句包含的所有表名,如果存在结果数据,则触发第三映射表查询子模块工作,否则触发语句解析及第二映射表更新子模块二工作;
语句解析及第二映射表更新子模块二,用于基于SQL语法规则解析更新语句,并获取更新语句包含的所有表名,并将更新语句作为键、更新语句包含的所有表名作为值保存到第二映射表,并触发第三映射表查询子模块工作;
第三映射表查询子模块,用于将更新语句包含的所有表名均作为键,从第三映射表查找所有的查询关键字,并触发第一映射表更新子模块二工作;
第一映射表更新子模块二,用于从第一映射表中清除查找到的查询关键字及其对应的结果数据,并触发第三映射表更新子模块二工作;
第三映射表更新子模块二,用于从第三映射表中清除更新语句包含的所有表名及其对应的查询关键字。
CN201710284987.8A 2017-04-27 2017-04-27 一种数据库缓存控制方法以及*** Active CN107145549B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710284987.8A CN107145549B (zh) 2017-04-27 2017-04-27 一种数据库缓存控制方法以及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710284987.8A CN107145549B (zh) 2017-04-27 2017-04-27 一种数据库缓存控制方法以及***

Publications (2)

Publication Number Publication Date
CN107145549A CN107145549A (zh) 2017-09-08
CN107145549B true CN107145549B (zh) 2020-01-14

Family

ID=59775008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710284987.8A Active CN107145549B (zh) 2017-04-27 2017-04-27 一种数据库缓存控制方法以及***

Country Status (1)

Country Link
CN (1) CN107145549B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832336A (zh) * 2017-10-10 2018-03-23 北京京东尚科信息技术有限公司 数据处理方法及其***
CN108305625B (zh) * 2018-01-29 2020-12-18 深圳春沐源控股有限公司 语音控制方法及装置、电子设备和计算机可读存储介质
CN110046170B (zh) * 2019-04-22 2021-07-27 深圳乐信软件技术有限公司 基于多文件管理的语句执行方法、装置、设备和介质
CN110288264A (zh) * 2019-07-03 2019-09-27 深圳智高点知识产权运营有限公司 一种企业商标监控分析***和方法
CN110321355A (zh) * 2019-07-12 2019-10-11 杭州美巴科技有限公司 一种自适应部分查询字段***及执行方法

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021875A (zh) * 2007-03-22 2007-08-22 金蝶软件(中国)有限公司 面向对象的数据库访问方法及***
CN101706781A (zh) * 2009-09-29 2010-05-12 北京星网锐捷网络技术有限公司 一种数据库缓存集中管理方法和***
CN101860449A (zh) * 2009-04-09 2010-10-13 华为技术有限公司 一种数据查询方法、装置及***
CN102542034A (zh) * 2011-12-23 2012-07-04 北京人大金仓信息技术股份有限公司 一种数据库接口的结果集缓存方法
CN102915380A (zh) * 2012-11-19 2013-02-06 北京奇虎科技有限公司 用于对数据进行搜索的方法和***
CN102937980A (zh) * 2012-10-18 2013-02-20 亿赞普(北京)科技有限公司 一种集群数据库数据查询方法
CN103268343A (zh) * 2013-05-24 2013-08-28 北京京东尚科信息技术有限公司 将关系数据库和缓存透明结合的***和方法
CN104182405A (zh) * 2013-05-22 2014-12-03 阿里巴巴集团控股有限公司 一种连接查询方法及装置
CN105512222A (zh) * 2015-11-30 2016-04-20 中国建设银行股份有限公司 数据查询方法及***和数据读取方法及***
CN105740383A (zh) * 2016-01-27 2016-07-06 中国科学院计算技术研究所 一种大数据平台下数据库与缓存的数据一致性方法及***
CN106294565A (zh) * 2016-07-27 2017-01-04 中国农业银行股份有限公司 一种数据库访问方法及***
CN106599199A (zh) * 2016-12-14 2017-04-26 国云科技股份有限公司 一种数据缓存与同步方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021875A (zh) * 2007-03-22 2007-08-22 金蝶软件(中国)有限公司 面向对象的数据库访问方法及***
CN101860449A (zh) * 2009-04-09 2010-10-13 华为技术有限公司 一种数据查询方法、装置及***
CN101706781A (zh) * 2009-09-29 2010-05-12 北京星网锐捷网络技术有限公司 一种数据库缓存集中管理方法和***
CN102542034A (zh) * 2011-12-23 2012-07-04 北京人大金仓信息技术股份有限公司 一种数据库接口的结果集缓存方法
CN102937980A (zh) * 2012-10-18 2013-02-20 亿赞普(北京)科技有限公司 一种集群数据库数据查询方法
CN102915380A (zh) * 2012-11-19 2013-02-06 北京奇虎科技有限公司 用于对数据进行搜索的方法和***
CN104182405A (zh) * 2013-05-22 2014-12-03 阿里巴巴集团控股有限公司 一种连接查询方法及装置
CN103268343A (zh) * 2013-05-24 2013-08-28 北京京东尚科信息技术有限公司 将关系数据库和缓存透明结合的***和方法
CN105512222A (zh) * 2015-11-30 2016-04-20 中国建设银行股份有限公司 数据查询方法及***和数据读取方法及***
CN105740383A (zh) * 2016-01-27 2016-07-06 中国科学院计算技术研究所 一种大数据平台下数据库与缓存的数据一致性方法及***
CN106294565A (zh) * 2016-07-27 2017-01-04 中国农业银行股份有限公司 一种数据库访问方法及***
CN106599199A (zh) * 2016-12-14 2017-04-26 国云科技股份有限公司 一种数据缓存与同步方法

Also Published As

Publication number Publication date
CN107145549A (zh) 2017-09-08

Similar Documents

Publication Publication Date Title
CN107145549B (zh) 一种数据库缓存控制方法以及***
CN107247808B (zh) 一种分布式NewSQL数据库***及图片数据查询方法
CN106934062B (zh) 一种查询elasticsearch的实现方法及***
CN100550019C (zh) 面向对象的数据库访问方法及***
KR102407510B1 (ko) 데이터 저장 및 조회 방법, 장치, 기기 및 매체
US8601474B2 (en) Resuming execution of an execution plan in a virtual machine
CN107526777B (zh) 一种基于版本号对文件进行处理的方法及设备
US7676453B2 (en) Partial query caching
US8396852B2 (en) Evaluating execution plan changes after a wakeup threshold time
US20060200438A1 (en) System and method for retrieving data from a relational database management system
US20120278305A1 (en) Dynamic merging of executable structures in a database system
US20020049756A1 (en) System and method for searching multiple disparate search engines
US20140046928A1 (en) Query plans with parameter markers in place of object identifiers
CN104765731A (zh) 数据库查询优化方法和设备
CN105718593A (zh) 一种数据库查询优化方法及***
US20060010112A1 (en) Using a rowset as a query parameter
CN105630881A (zh) 一种rdf的数据存储方法和查询方法
US9218394B2 (en) Reading rows from memory prior to reading rows from secondary storage
US20160103858A1 (en) Data management system comprising a trie data structure, integrated circuits and methods therefor
CN112231321B (zh) 一种Oracle二级索引及索引实时同步方法
CN111159215B (zh) Java类与关系型数据库的映射方法、装置及计算设备
CN110046170A (zh) 基于多文件管理的语句执行方法、装置、设备和介质
US20120179669A1 (en) Systems and methods for searching a search space of a query
US20140067853A1 (en) Data search method, information system, and recording medium storing data search program
CN111125216A (zh) 数据导入Phoenix的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee after: Zhigaogao Intellectual Property Group Co.,Ltd.

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee before: SHENZHEN ZHIGAODIAN INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20230110

Address after: 518064 109, Building 15, Block B, Building 5, No. 54, Xingnan Road, Nanyou Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province

Patentee after: Guozhi Digital Economy (Shenzhen) Co.,Ltd.

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee before: Zhigaogao Intellectual Property Group Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230428

Address after: Room D504-507, Zhejiang University Science and Technology Park, No. 698 Jingdong Avenue, Nanchang High tech Industrial Development Zone, Nanchang City, Jiangxi Province, 330096

Patentee after: Jiangxi Zhichan Big Data Co.,Ltd.

Address before: 518064 109, Building 15, Block B, Building 5, No. 54, Xingnan Road, Nanyou Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province

Patentee before: Guozhi Digital Economy (Shenzhen) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231227

Address after: 518000 Room 109, Building 15, Nanyou District B, Building 5, No. 54, Xingnan Road, Nanyou Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong

Patentee after: Guozhi Digital Economy (Shenzhen) Co.,Ltd.

Address before: Room D504-507, Zhejiang University Science and Technology Park, No. 698 Jingdong Avenue, Nanchang High tech Industrial Development Zone, Nanchang City, Jiangxi Province, 330096

Patentee before: Jiangxi Zhichan Big Data Co.,Ltd.

TR01 Transfer of patent right