CN110134705A - 一种数据查询方法、缓存服务器及终端 - Google Patents
一种数据查询方法、缓存服务器及终端 Download PDFInfo
- Publication number
- CN110134705A CN110134705A CN201810134611.3A CN201810134611A CN110134705A CN 110134705 A CN110134705 A CN 110134705A CN 201810134611 A CN201810134611 A CN 201810134611A CN 110134705 A CN110134705 A CN 110134705A
- Authority
- CN
- China
- Prior art keywords
- sql statement
- data
- key assignments
- terminal
- cache server
- 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/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种数据查询方法、缓存服务器和终端。所述方法包括:接收并解析终端发送的带有缓存标识的SQL语句,SQL语句还包括查询表名、查询表版本号、查询参数和自定义操作名;将查询表名、查询表版本号、查询参数和自定义操作名构成的第一键值与第二键值进行匹配获得匹配结果;根据匹配结果将查询结果数据返回至终端。所述缓存服务器用于执行所述方法,本发明实施例通过接收终端发送的带有缓存标识的SQL语句,根据SQL语句对应的第一键值与第二键值进行匹配,根据匹配结果获得查询结果数据,无需每次都通过数据库来进行查询,也无需对SQL语句进行复杂的解析操作即可获取到查询结果数据,从而提高数据查询效率,降低了数据库的负载。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据查询方法、缓存服务器及终端。
背景技术
许多Web应用程序都将数据保存到关系数据库管理系统(Relational DatabaseManagement System,简称RDBMS)中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大,访问的集中,就会出现REBMS的负担加重,数据库响应恶化,网站显示延迟等重大影响。
图1为现有技术提供的一种数据读取过程示意图,如图1所示,由于缓存系统存在高性能的分布式存储对象缓存系统(Memcached)和数据库之间数据的同步,属于间接缓存,因此,在数据读取过程中,无法通过SQL语句读取缓存数据,而是通过Memcached的接口和数据类型进行读数,从而需要对缓存系统的接口进行修改,且终端在接收到缓存系统返回的数据后,需要对数据的格式进行修改,导致返回数据的效率比较低。
另一种方案是,终端通过SQL语句读取数据库的数据,该方法都需要到数据库运行,再返回结果。这样带来的一个问题是,即便数据未有任何变化,数据库都需要进行语法分析、语义分析、权限检查、表达式转换、变量绑定、生成执行计划等复杂操作,随着系统访问量的增大,数据库负载越来越高,最终性能直线下降。最糟糕的是碰到未按编码规范写的SQL语句,没采用变量绑定,使得数据库反复进行硬解析,从而导致数据库存在大量Latch锁。那无疑会大大增加数据库的负载,从而降低系统的整体性能。
因此,如何提高数据查询的效率,同时降低数据库的负载是现如今亟待解决的课题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种数据查询方法、缓存服务器及终端。
第一方面,本发明实施例提供一种数据查询方法,包括:
接收并解析终端发送的带有缓存标识的SQL语句,所述SQL语句还包括查询表名、查询表版本号、查询参数和自定义操作名;
将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;
根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端。
第二方面,本发明实施例提供一种数据查询方法,包括:
接收并解析用户根据SQL语句模板输入的SQL语句,所述SQL语句包括查询表名、查询表版本号、查询参数和自定义操作名;
若判断获知所述SQL语句中还包括缓存标识,则将所述SQL语句发送至缓存服务器,以使所述缓存服务器将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;
接收所述缓存服务器根据匹配结果获得的所述SQL语句对应的查询结果数据。
第三方面,本发明实施例提供一种缓存服务器,包括:收发器和处理器;
所述收发器用于接收终端发送的带有缓存标识的SQL语句,并根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端;
所述处理器用于解析终端发送的带有缓存标识的SQL语句,将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果。
第四方面,本发明实施例提供一种终端包括收发器和处理器;
所述收发器用于接收用户根据SQL语句模板输入的SQL语句,将所述SQL语句发送至缓存服务器,接收所述缓存服务器根据匹配结果获得的所述SQL语句对应的查询结果数据;
所述处理器用于解析用户根据SQL语句模板输入的SQL语句,并判断所述SQL语句中是否包括缓存标识。
第五方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法步骤。
第六方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法步骤。
第七方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第二方面的方法步骤。
第八方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第二方面的方法步骤。
本发明实施例提供的一种数据查询方法、缓存服务器及终端,通过接收终端发送的带有缓存标识的SQL语句,并根据SQL语句对应的第一键值与第二键值进行匹配,根据匹配结果获得查询结果数据,无需每次都通过数据库来进行查询,也无需对SQL语句进行复杂的解析操作即可获取到查询结果数据,从而提高数据查询效率的同时,降低了数据库的负载。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的一种数据读取过程示意图;
图2为本发明实施例提供的一种数据查询方法流程示意图;
图3为本发明实施例提供的一种数据查询方法流程示意图;
图4为本发明实施例提供的SQL文件发布示意图;
图5为本发明实施例提供的版本号表示意图;
图6为本发明实施例提供的一种数据查询方法信令交互图;
图7为本发明实施例提供的一种缓存服务器结构示意图;
图8为本发明实施例提供的一种终端结构示意图;
图9为本发明实施例提供的一种数据查询系统结构示意图;
图10为本发明实施例提供的电子设备实体结构示意图;
图11为本发明实施例提供的电子设备实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为本发明实施例提供的一种数据查询方法流程示意图,如图2所示,所述方法,包括:
步骤201:接收并解析终端发送的带有缓存标识的SQL语句,所述SQL语句还包括查询表名、查询表版本号、查询参数和自定义操作名;
具体的,终端上的各种APP通过与数据库的交互来获取数据,并将数据反馈给用户,根据经验,有很多数据实际上是不怎么变化的,而这些不怎么变化的数据有时候有需要频繁的被访问,如果每次都从数据库中取数据,则数据库需要进行繁重的语法分析、语义分析、权限检查、表达式转换、变量绑定、生成执行计划等工作。为了降低数据库的工作量,当终端需要读取数据时,首先生成所需数据的SQL语句,如果SQL语句中包括缓存标识的字段,则说明终端选择从缓存服务器中获取数据,此时,缓存服务器接收终端发送的带有缓存标识的SQL语句,并对该SQL语句进行解析,可以获得SQL语句中包括的查询表名、查询表版本号、查询参数和自定义操作名,其中,自定义操作名是用户自定义的,应当说明的是,SQL语句中还可以包括其他字段,本发明实施例对此不做具体限定。
步骤202:将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;
具体的,SQL语句中的查询表名、查询表版本号、查询参数和自定义操作名可以构成第一键值,可以理解的是,第一键值可以在终端生成,终端在向缓存服务器发送SQL语句时,将第一键值一起进行发送,另外,第一键值也可以在缓存服务器生成,缓存服务器通过对SQL语句的解析后获得第一键值所需要的字段,然后生成第一键值。第一键值的构成为:TAB_NAME+SQL_NAME+TABNAME1+VERSION1+TABNAME2+VERSION2+TABNAME3+VERSION4+…+PARAMNAME1+VALUE1+PARAMNAME1+VALUE1+PARAMNAME1+VALUE1+…。
其中,TAB_NAME为查询表名,如果同时查询多张表,则将第一张表的表名作为查询表名,SQL_NAME为自定义操作名,TABNAME i为第i张表的表名,VERSION i为第i张表对应的版本号,PARAMNAME i为第i个参数,VALUE i为第i个参数对应的值。
以TD_B_PACKAGE^SEL_BY_DISCNT_NAME为例,假设DISCNT_CODE的传参为39051033,那么构成的第一键值为:
TD_B_PACKAGE+SEL_BY_DISCNT_NAME+TD_B_PACKAGE+20131130134957+DISCNT_CODE+’39051033’。
缓存服务器获取到SQL语句对应的第一键值后,与缓存服务器中存储的多个第二键值进行匹配,判断在缓存服务器中是否有与第一键值相同的第二键值,可以理解的是,在缓存服务器中存储了多条第二键值与对应的数据的关联关系。如果数据库中的某个表发生了变化,那么该表对应的版本号也会发生变化,但是在缓存服务器中相应的表的相关信息并不会变,由于终端要获取的都是最新版本的数据,如果版本号发生变化,那么第一键值也会变化。经过第一键值与缓存服务器中的各个第二键值的匹配后,可以获得到匹配结果。应当说明的是,匹配结果可以是匹配成功也可以为匹配失败。
步骤203:根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端。
具体的,缓存服务器根据匹配结果获取到SQL语句对应的查询结果数据,并将该查询结果数据返回至终端,以使终端能够将查询结果数据进行显示,用户便可以获取到需要的数据。
本发明实施例通过接收终端发送的带有缓存标识的SQL语句,并根据SQL语句对应的第一键值与第二键值进行匹配,根据匹配结果获得查询结果数据,无需每次都通过数据库来进行查询,也无需对SQL语句进行复杂的解析操作即可获取到查询结果数据,从而提高数据查询效率的同时,降低了数据库的负载。
在上述实施例的基础上,所述根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端,包括:
若匹配成功,则获取与所述第一键值匹配成功的第二键值对应的表数据;
根据所述SQL语句从所述表数据中获得所述查询结果数据,并将所述查询结果数据返回至所述终端。
具体的,如果匹配结果为成功,则说明在缓存服务器中找到了与第一键值相同的第二键值,由于缓存服务器中的每一个第二键值都有与唯一的表数据与之对应,获取与第一键值匹配成功的第二键值对应的表数据,由于表数据中包括了整张表的所有数据,而SQL语句中可能不需要所有的数据,因此从表数据中获取对应的查询结果数据,并将查询结果数据返回至终端。
本发明实施例通过将第一键值与第二键值进行匹配,如果匹配成功,则说明缓存服务器中存储的数据为最新的数据,并通过匹配成功的第二键值可以方便快速的获取到查询结果数据,不需要缓存服务器进行复杂的解析操作,一方面能够保证获取到的数据的正确性,另一方面,能够提高数据返回的速率,并减轻缓存服务器的压力。
在上述实施例的基础上,所述根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端,包括:
若匹配失败,则将所述SQL语句发送至数据库,以使所述数据库根据所述SQL语句进行查询,并将所述查询结果数据返回至所述终端。
具体的,如果匹配失败,则说明缓存服务器中没有SQL语句所需要的数据,此时缓存服务器将SQL语句发送给数据库,数据库在接收到SQL语句后进行查询,其查询方式可以是数据库的常规查询,也可以在数据库中为每一张数据表都绑定一个第三键值,以使得数据库将第一键值与第三键值进行匹配,获取匹配成功的第三键值对应的表数据,当从数据库中获取到查询结果数据后,将查询结果数据返回至终端。应当说明的是,第一键值中的表版本号是关键,且最容易发生变化的也是表版本号,只要数据库中的数据发生变化,则发生变化的数据对应的表版本号就会发生变化,如果在缓存服务器中没有找到与第一键值匹配的第二键值,则说明缓存服务器中存储的数据为旧数据。应当说明的是,在从数据库中获取到查询结果数据后,可以将查询结果数据先返回至缓存服务器,经缓存服务器再将查询结果数据发送至终端,也可以由数据库直接将查询结果数据返回至终端。
本发明实施例通过先在缓存服务器中查询数据,如果缓存服务器中没有需要的数据再从数据库中获取,并通过带有版本号的第一键值来确定获取到的数据为最新的数据,以此来降低数据库的压力,和提高获取到的数据的准确性。
在上述实施例的基础上,所述方法,还包括:
从所述数据库中获取所述查询结果数据,构建所述查询结果数据与所述第一键值的关联关系,并将所述关联关系进行存储。
具体的,如果缓存服务器中没有与第一键值匹配的第二键值,则从数据库中进行查询,在数据库根据SQL语句获取到对应的查询结果数据后,将该查询结果数据发送至缓存服务器,由于第一键值中包括的版本号为最新的版本号,因此,缓存服务器构建查询结果数据与第一键值的关联关系,并将具有关联关系的第一键值和对应的查询结果数据进行存储,此时,缓存服务器中存储了最新版本的数据,当终端在数据更新之前再次从缓存服务器中获取该数据时,便能够获取到,因此不再需要从数据库中获取。
本发明实施例通过将在数据库中获取到的查询结果数据,以及将查询结果数据发送至缓存服务器,缓存服务器将查询结果数据与第一键值进行绑定并存储,从而使得缓存服务器中存储有最新版本的数据,提高数据查询的准确性。
在上述实施例的基础上,所述将所述关联关系进行存储,包括:
根据LRU算法将所述关联关系进行存储。
具体的,LRU算法是指最近最久未使用,经常被调用的数据称为热数据,长时间不被调用的数据为冷数据,在缓存服务器的存储空间有限的情况下,如果需要将某个数据进行存储,则要将缓存服务器中的某个数据删除,将存储空间留出来,对于删除那个数据,本发明实施例利用的是LRU算法,将最近最久未使用的数据删除,然后再将查询结果数据存储进来,从而达到了数据的更新。
本发明实施例通过LRU算法对缓存服务器中的冷数据淘汰,以此来更新缓存服务器中的数据,无需手工清理。
图3为本发明实施例提供的一种数据查询方法流程示意图,如图3所示,所述方法,包括:
步骤301:接收并解析用户根据SQL语句模板输入的SQL语句,所述SQL语句包括查询表名、查询表版本号、查询参数和自定义操作名;
具体的,用户通过SQL语句模板来构建SQL语句,即在SQL模板的对应位置上输入对应的参数,终端接收用户输入的SQL语句,并对SQL语句进行解析,获得SQL语句中包括的查询表名、查询表版本号、查询参数和自定义操作名,应当说明的是,SQL语句中还可以包括其他参数,本发明实施例对此不做具体限定,且SQL语句模块是预先存储在终端中的。
步骤302:若判断获知所述SQL语句中还包括缓存标识,则将所述SQL语句发送至缓存服务器,以使所述缓存服务器将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;
具体的,终端在对接收到的SQL语句进行解析后判断得知SQL语句中包括缓存标识,则说明需要从缓存服务器中查询数据,因此,终端将SQL语句发送至缓存服务器,缓存服务器在接收到SQL语句后,对其进行解析,获得SQL语句中包括的查询表名、查询表版本号、查询参数和自定义操作名。SQL语句中的查询表名、查询表版本号、查询参数和自定义操作名可以构成第一键值,可以理解的是,第一键值可以在终端生成,终端在向缓存服务器发送SQL语句时,将第一键值一起进行发送,另外,第一键值也可以在缓存服务器生成,缓存服务器通过对SQL语句的解析后获得第一键值所需要的字段,然后生成第一键值。将第一键值与缓存服务器中存储的多个第二键值进行匹配,判断在缓存服务器中是否有与第一键值相同的第二键值,获得匹配结果。
步骤303:接收所述缓存服务器根据匹配结果获得的所述SQL语句对应的查询结果数据。
具体的,如果匹配成功,则说明可以缓存服务器中获取到查询结果数据,此时终端便可接收到缓存服务器发送的SQL语句对应的查询结果数据;如果匹配失败,则需要从数据库中进行查询,然后将查询结果数据返回至缓存服务器,缓存服务器再将查询结果数据发送至终端。
本发明实施例通过终端向缓存服务器发送的带有缓存标识的SQL语句,缓存服务器根据SQL语句对应的第一键值与第二键值进行匹配,根据匹配结果获得查询结果数据,无需每次都通过数据库来进行查询,也无需对SQL语句进行复杂的解析操作即可获取到查询结果数据,从而提高数据查询效率的同时,降低了数据库的负载。
在上述实施例的基础上,所述方法,还包括:
若判断获知所述SQL语句中不包括缓存标识,则将所述SQL语句发送至数据库,并接收所述SQL语句对应的查询结果数据。
具体的,如果终端判断得知SQL语句中不包括缓存标识,则说明终端选择直接从数据库中获取数据,此时,终端直接将SQL语句发送给数据库,以使数据库根据SQL语句进行查询,并获得对应的查询结果数据。数据库将查询结果数据发送给终端,此时终端便可接收到SQL语句对应的查询结果数据。应当说明的是,SQL语句中可以设置缓存字段,如果缓存字段对应的值为0,说明不包括缓存标识,如果缓存字段对应的值为1,说明包括缓存标识。
本发明实施例通过SQL语句中是否包括缓存标识来确定具体从哪里查询,满足了用户的实际需求。
在上述实施例的基础上,所述方法,还包括:
预先将模板表和版本号表进行存储,所述模板表包括多个SQL语句模板,所述版本号表包括多个查询表名对应的当前版本号。
具体的,为了便于用户输入SQL语句,可以预先创建多个SQL语句模板,将创建的多个SQL语句模板构成一个模板表,并将模板表进行存储。可以将每条SQL语句模板存储有一个SQL文件,以SQL操作的查询表名作为目录,以自定义操作名作为文件名,这样每条SQL语句模板都有了唯一的标识符。对于SQL语句模板的定义规则为:参数名前添加冒号,例如:SEL_BY_DISCNT_NAME.SQL模板里的参数字段为:DISCNT_CODE;需要标识为缓存的SQL语句,在SQL文件首行以SQL注释的方式添加,例如:——IS_CACHE=Y。在创建完所有的SQL文件后,将SQL文件发布到模板表中,图4为本发明实施例提供的SQL文件发布示意图,如图4所示,在发布过程中,发布工具将自动解析SQL语句模板,自动判断出SQL语句的参数字段、操作的表明、是否缓存、缓存超时时间等信息,并将这些信息写到模板表对应的字段中。
另外,在终端中预先存储版本号表,数据库中的每一张表都有对应的版本号,数据库将每一张表的表名及对应的版本号实时发送至终端,终端再将其统一记录在版本号表中,图5为本发明实施例提供的版本号表示意图,如图5所示,TABLE_NAME为数据库中的查询表名,VERSION为表名对应的版本号,可以理解的是,表的版本号可以为时间戳。终端通过预先存储的版本号表便可获知数据库中每张表对应的最新的版本号。
本发明实施例通过预先在终端存储模板表和版本号表,用户可以通过模板表很方便快捷的输入SQL语句,通过版本号表能够实时获取到数据库中各查询表名的最新版本号。
图6为本发明实施例提供的一种数据查询方法信令交互图,如图6所示,包括:
S601:终端发送SQL语句;终端判断SQL语句是否携带有缓存标识,若有则将SQL语句发送至缓存服务器,执行S602,若没有则将SQL语句发送至数据库,执行S606;
S602:解析;缓存服务器对SQL语句进行解析,获得对应的查询表名、查询表版本号、查询参数和自定义操作名,执行S603;
S603:键值匹配;缓存服务器根据查询表名、查询表版本号、查询参数和自定义操作名构成的第一键值,与缓存服务器中包括的多个第二键值进行匹配,如果匹配成功,则执行S604,否则,执行S605;
S604:返回数据;缓存服务器将与第一键值匹配成功的第二键值对应的查询结果数据返回至终端。
S605:向数据库发送SQL语句;缓存服务器将SQL语句发送至数据库,数据库根据SQL语句获取到对应的查询结果数据;
S606:返回数据;数据库将查询结果数据返回至缓存服务器,缓存服务器再将查询结果数据返回至终端;
S607:缓存;缓存服务器在接收到数据库返回的查询结果数据后,将查询结果数据与第一键值进行绑定并存储,其存储时通过LRU算法淘汰掉冷数据。
本发明实施例通过接收终端发送的带有缓存标识的SQL语句,并根据SQL语句对应的第一键值与第二键值进行匹配,根据匹配结果获得查询结果数据,无需每次都通过数据库来进行查询,也无需对SQL语句进行复杂的解析操作即可获取到查询结果数据,从而提高数据查询效率的同时,降低了数据库的负载。
图7为本发明实施例提供的一种缓存服务器结构示意图,如图7所示,包括:收发器701和处理器702;
所述收发器701用于接收终端发送的带有缓存标识的SQL语句,并根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端;
所述处理器702用于解析终端发送的带有缓存标识的SQL语句,将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果。
具体的,收发器701接收终端发送的带有缓存标识的SQL语句,处理器702对SQL语句进行解析,获得对应的查询表名、查询表版本号、查询参数和自定义操作名,并将查询表名、查询表版本号、查询参数和自定义操作名构成的第一键值与第二键值进行匹配,获得匹配结果,收发器701根据匹配结果将SQL语句对应的查询结果数据发送至终端。
本发明提供的缓存服务器的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
本发明实施例通过接收终端发送的带有缓存标识的SQL语句,并根据SQL语句对应的第一键值与第二键值进行匹配,根据匹配结果获得查询结果数据,无需每次都通过数据库来进行查询,也无需对SQL语句进行复杂的解析操作即可获取到查询结果数据,从而提高数据查询效率的同时,降低了数据库的负载。
图8为本发明实施例提供的一种终端结构示意图,如图8所示,所述终端,包括:收发器801和802处理器;
所述收发器801用于接收用户根据SQL语句模板输入的SQL语句,将所述SQL语句发送至缓存服务器,接收所述缓存服务器根据匹配结果获得的所述SQL语句对应的查询结果数据;
所述处理器802用于解析用户根据SQL语句模板输入的SQL语句,并判断所述SQL语句中是否包括缓存标识。
具体的,收发器801接收用户输入的SQL语句,处理器802对SQL语句进行解析,获得查询表名、查询表版本号、查询参数和自定义操作名,如果判断得知SQL语句中包括缓存标识,则收发器801将SQL语句发送至缓存服务器中,如果SQL语句中不包括缓存标识,则收发器801将SQL语句发送至数据库中,并且收发器801接收缓存服务器返回的查询结果数据。
本发明提供的终端的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
本发明实施例通过终端向缓存服务器发送的带有缓存标识的SQL语句,缓存服务器根据SQL语句对应的第一键值与第二键值进行匹配,根据匹配结果获得查询结果数据,无需每次都通过数据库来进行查询,也无需对SQL语句进行复杂的解析操作即可获取到查询结果数据,从而提高数据查询效率的同时,降低了数据库的负载。
图9为本发明实施例提供的一种数据查询系统结构示意图,如图9所示,所述系统包括:核心应用层901、缓存层902和核心数据层903,其中:核心应用层901包括多个终端,日志服务器、FTP服务器和内网DNS;每个终端包括多个APP,缓存层902包括缓存服务器;核心数据层903包括多个数据库;APP向缓存层发送SQL语句,如果命中,则说明SQL语句对应的第一键值与缓存服务器中的第二键值匹配成功,此时可以从缓存层获取数据,而不需要从数据库中获取。如果没有命中,则说明SQL语句对应的第一键值与缓存服务器中的第二键值匹配成功,此时需要从数据库中获取查询结果数据。
图10为本发明实施例提供的电子设备实体结构示意图,如图10所示,所述电子设备,包括:处理器(processor)1001、存储器(memory)1002和总线1003;其中,
所述处理器1001和存储器1002通过所述总线1003完成相互间的通信;
所述处理器1001用于调用所述存储器1002中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:接收并解析终端发送的带有缓存标识的SQL语句,所述SQL语句还包括查询表名、查询表版本号、查询参数和自定义操作名;将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收并解析终端发送的带有缓存标识的SQL语句,所述SQL语句还包括查询表名、查询表版本号、查询参数和自定义操作名;将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收并解析终端发送的带有缓存标识的SQL语句,所述SQL语句还包括查询表名、查询表版本号、查询参数和自定义操作名;将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端。
图11为本发明实施例提供的电子设备实体结构示意图,如图11所示,所述电子设备,包括:处理器(processor)1101、存储器(memory)1102和总线1103;其中,
所述处理器1101和存储器1102通过所述总线1103完成相互间的通信;
所述处理器1101用于调用所述存储器1102中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:接收并解析用户根据SQL语句模板输入的SQL语句,所述SQL语句包括查询表名、查询表版本号、查询参数和自定义操作名;若判断获知所述SQL语句中还包括缓存标识,则将所述SQL语句发送至缓存服务器,以使所述缓存服务器将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;接收所述缓存服务器根据匹配结果获得的所述SQL语句对应的查询结果数据。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收并解析用户根据SQL语句模板输入的SQL语句,所述SQL语句包括查询表名、查询表版本号、查询参数和自定义操作名;若判断获知所述SQL语句中还包括缓存标识,则将所述SQL语句发送至缓存服务器,以使所述缓存服务器将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;接收所述缓存服务器根据匹配结果获得的所述SQL语句对应的查询结果数据。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收并解析用户根据SQL语句模板输入的SQL语句,所述SQL语句包括查询表名、查询表版本号、查询参数和自定义操作名;若判断获知所述SQL语句中还包括缓存标识,则将所述SQL语句发送至缓存服务器,以使所述缓存服务器将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;接收所述缓存服务器根据匹配结果获得的所述SQL语句对应的查询结果数据。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的终端等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种数据查询方法,其特征在于,包括:
接收并解析终端发送的带有缓存标识的SQL语句,所述SQL语句还包括查询表名、查询表版本号、查询参数和自定义操作名;
将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;
根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端。
2.根据权利要求1所述的方法,其特征在于,所述根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端,包括:
若匹配成功,则获取与所述第一键值匹配成功的第二键值对应的表数据;
根据所述SQL语句从所述表数据中获得所述查询结果数据,并将所述查询结果数据返回至所述终端。
3.根据权利要求1或2所述的方法,其特征在于,所述根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端,包括:
若匹配失败,则将所述SQL语句发送至数据库,以使所述数据库根据所述SQL语句进行查询,并将所述查询结果数据返回至所述终端。
4.根据权利要求3所述的方法,其特征在于,所述方法,还包括:
从所述数据库中获取所述查询结果数据,构建所述查询结果数据与所述第一键值的关联关系,并将所述关联关系进行存储。
5.根据权利要求4所述的方法,其特征在于,所述将所述关联关系进行存储,包括:
根据LRU算法将所述关联关系进行存储。
6.一种数据查询方法,其特征在于,包括:
接收并解析用户根据SQL语句模板输入的SQL语句,所述SQL语句包括查询表名、查询表版本号、查询参数和自定义操作名;
若判断获知所述SQL语句中还包括缓存标识,则将所述SQL语句发送至缓存服务器,以使所述缓存服务器将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果;
接收所述缓存服务器根据匹配结果获得的所述SQL语句对应的查询结果数据。
7.根据权利要求6所述的方法,其特征在于,所述方法,还包括:
若判断获知所述SQL语句中不包括缓存标识,则将所述SQL语句发送至数据库,并接收所述SQL语句对应的查询结果数据。
8.根据权利要求6或7所述的方法,其特征在于,所述方法,还包括:
预先将模板表和版本号表进行存储,所述模板表包括多个SQL语句模板,所述版本号表包括多个查询表名对应的当前版本号。
9.一种缓存服务器,其特征在于,包括收发器和处理器;
所述收发器用于接收终端发送的带有缓存标识的SQL语句,并根据匹配结果将所述SQL语句对应的查询结果数据返回至所述终端;
所述处理器用于解析终端发送的带有缓存标识的SQL语句,将所述查询表名、所述查询表版本号、所述查询参数和所述自定义操作名构成的第一键值分别与缓存服务器中包括的多个第二键值进行匹配,获得匹配结果。
10.一种终端,其特征在于,包括收发器和处理器;
所述收发器用于接收用户根据SQL语句模板输入的SQL语句,将所述SQL语句发送至缓存服务器,接收所述缓存服务器根据匹配结果获得的所述SQL语句对应的查询结果数据;
所述处理器用于解析用户根据SQL语句模板输入的SQL语句,并判断所述SQL语句中是否包括缓存标识。
11.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-5任一项所述的方法。
12.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1-5任一项所述的方法。
13.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求6-8任一项所述的方法。
14.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求6-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810134611.3A CN110134705A (zh) | 2018-02-09 | 2018-02-09 | 一种数据查询方法、缓存服务器及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810134611.3A CN110134705A (zh) | 2018-02-09 | 2018-02-09 | 一种数据查询方法、缓存服务器及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110134705A true CN110134705A (zh) | 2019-08-16 |
Family
ID=67567997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810134611.3A Pending CN110134705A (zh) | 2018-02-09 | 2018-02-09 | 一种数据查询方法、缓存服务器及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110134705A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554993A (zh) * | 2019-09-09 | 2019-12-10 | 中国工商银行股份有限公司 | 数据查询方法及系统 |
CN110955687A (zh) * | 2019-12-03 | 2020-04-03 | 中国银行股份有限公司 | 数据修改方法及装置 |
CN111143416A (zh) * | 2019-12-25 | 2020-05-12 | 深圳广联赛讯有限公司 | 基于数据缓存的查询方法、终端及存储介质 |
CN111193793A (zh) * | 2019-12-30 | 2020-05-22 | 杭州安恒信息技术股份有限公司 | 基于数据迅速交互的方法 |
CN111831915A (zh) * | 2020-07-23 | 2020-10-27 | 北京奇艺世纪科技有限公司 | 响应数据查询请求的方法、装置、电子设备及存储介质 |
CN112131846A (zh) * | 2020-09-07 | 2020-12-25 | 北京思特奇信息技术股份有限公司 | 一种基于映射关系进行传参的方法及系统、电子装置、存储介质 |
CN112307068A (zh) * | 2020-11-10 | 2021-02-02 | 天元大数据信用管理有限公司 | 一种动态sql查询方法 |
CN112348458A (zh) * | 2020-10-19 | 2021-02-09 | 湖南大唐先一科技有限公司 | 基于业务规则的流程模型匹配方法及系统 |
CN112765215A (zh) * | 2021-01-19 | 2021-05-07 | 上海幻电信息科技有限公司 | 数据查询方法、装置 |
CN112818049A (zh) * | 2021-01-28 | 2021-05-18 | 中国人寿保险股份有限公司上海数据中心 | 一种信息系统性能全链路分析系统及其方法 |
CN113076330A (zh) * | 2020-01-06 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 查询处理方法、装置、数据库系统、电子设备及存储介质 |
CN113420051A (zh) * | 2021-06-30 | 2021-09-21 | 网易(杭州)网络有限公司 | 一种数据查询方法、装置、电子设备和存储介质 |
CN113704290A (zh) * | 2021-09-02 | 2021-11-26 | 宏桥高科技集团有限公司 | 一种数据查询系统及方法 |
CN112765215B (zh) * | 2021-01-19 | 2024-07-12 | 上海幻电信息科技有限公司 | 数据查询方法、装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268343A (zh) * | 2013-05-24 | 2013-08-28 | 北京京东尚科信息技术有限公司 | 将关系数据库和缓存透明结合的系统和方法 |
CN103853727A (zh) * | 2012-11-29 | 2014-06-11 | 深圳中兴力维技术有限公司 | 提高大数据量查询性能的方法及系统 |
CN104809254A (zh) * | 2015-05-19 | 2015-07-29 | 郑州悉知信息技术有限公司 | 一种数据查询方法及装置 |
US20160085775A1 (en) * | 2012-04-12 | 2016-03-24 | International Business Machines Corporation | Managing record location lookup caching in a relational database |
CN107038222A (zh) * | 2017-03-24 | 2017-08-11 | 福建天泉教育科技有限公司 | 数据库缓存实现方法及其系统 |
-
2018
- 2018-02-09 CN CN201810134611.3A patent/CN110134705A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160085775A1 (en) * | 2012-04-12 | 2016-03-24 | International Business Machines Corporation | Managing record location lookup caching in a relational database |
CN103853727A (zh) * | 2012-11-29 | 2014-06-11 | 深圳中兴力维技术有限公司 | 提高大数据量查询性能的方法及系统 |
CN103268343A (zh) * | 2013-05-24 | 2013-08-28 | 北京京东尚科信息技术有限公司 | 将关系数据库和缓存透明结合的系统和方法 |
CN104809254A (zh) * | 2015-05-19 | 2015-07-29 | 郑州悉知信息技术有限公司 | 一种数据查询方法及装置 |
CN107038222A (zh) * | 2017-03-24 | 2017-08-11 | 福建天泉教育科技有限公司 | 数据库缓存实现方法及其系统 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554993A (zh) * | 2019-09-09 | 2019-12-10 | 中国工商银行股份有限公司 | 数据查询方法及系统 |
CN110554993B (zh) * | 2019-09-09 | 2022-05-17 | 中国工商银行股份有限公司 | 数据查询方法及系统 |
CN110955687A (zh) * | 2019-12-03 | 2020-04-03 | 中国银行股份有限公司 | 数据修改方法及装置 |
CN111143416A (zh) * | 2019-12-25 | 2020-05-12 | 深圳广联赛讯有限公司 | 基于数据缓存的查询方法、终端及存储介质 |
CN111143416B (zh) * | 2019-12-25 | 2024-01-30 | 深圳广联赛讯股份有限公司 | 基于数据缓存的查询方法、终端及存储介质 |
CN111193793A (zh) * | 2019-12-30 | 2020-05-22 | 杭州安恒信息技术股份有限公司 | 基于数据迅速交互的方法 |
CN113076330A (zh) * | 2020-01-06 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 查询处理方法、装置、数据库系统、电子设备及存储介质 |
CN113076330B (zh) * | 2020-01-06 | 2024-05-17 | 阿里巴巴集团控股有限公司 | 查询处理方法、装置、数据库系统、电子设备及存储介质 |
CN111831915A (zh) * | 2020-07-23 | 2020-10-27 | 北京奇艺世纪科技有限公司 | 响应数据查询请求的方法、装置、电子设备及存储介质 |
CN112131846A (zh) * | 2020-09-07 | 2020-12-25 | 北京思特奇信息技术股份有限公司 | 一种基于映射关系进行传参的方法及系统、电子装置、存储介质 |
CN112131846B (zh) * | 2020-09-07 | 2024-06-04 | 北京思特奇信息技术股份有限公司 | 一种基于映射关系进行传参的方法及系统、电子装置、存储介质 |
CN112348458A (zh) * | 2020-10-19 | 2021-02-09 | 湖南大唐先一科技有限公司 | 基于业务规则的流程模型匹配方法及系统 |
CN112307068A (zh) * | 2020-11-10 | 2021-02-02 | 天元大数据信用管理有限公司 | 一种动态sql查询方法 |
CN112765215A (zh) * | 2021-01-19 | 2021-05-07 | 上海幻电信息科技有限公司 | 数据查询方法、装置 |
CN112765215B (zh) * | 2021-01-19 | 2024-07-12 | 上海幻电信息科技有限公司 | 数据查询方法、装置 |
CN112818049B (zh) * | 2021-01-28 | 2024-04-16 | 中国人寿保险股份有限公司上海数据中心 | 一种信息系统性能全链路分析系统及其方法 |
CN112818049A (zh) * | 2021-01-28 | 2021-05-18 | 中国人寿保险股份有限公司上海数据中心 | 一种信息系统性能全链路分析系统及其方法 |
CN113420051B (zh) * | 2021-06-30 | 2023-08-29 | 网易(杭州)网络有限公司 | 一种数据查询方法、装置、电子设备和存储介质 |
CN113420051A (zh) * | 2021-06-30 | 2021-09-21 | 网易(杭州)网络有限公司 | 一种数据查询方法、装置、电子设备和存储介质 |
CN113704290A (zh) * | 2021-09-02 | 2021-11-26 | 宏桥高科技集团有限公司 | 一种数据查询系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134705A (zh) | 一种数据查询方法、缓存服务器及终端 | |
CN105378721B (zh) | 知识捕获和发现系统 | |
US8666970B2 (en) | Query plan enhancement | |
Halevy et al. | Enterprise information integration: successes, challenges and controversies | |
US7673282B2 (en) | Enterprise information unification | |
US7730056B2 (en) | Software and method for utilizing a common database layout | |
US7676453B2 (en) | Partial query caching | |
US8180758B1 (en) | Data management system utilizing predicate logic | |
CN111639078A (zh) | 数据查询方法、装置、电子设备以及可读存储介质 | |
US11216474B2 (en) | Statistical processing of natural language queries of data sets | |
US20230244684A1 (en) | Techniques for decoupling access to infrastructure models | |
US10747958B2 (en) | Dependency graph based natural language processing | |
EP2874077A2 (en) | Stateless database cache | |
CN103226478A (zh) | 一种自动生成并使用代码的方法 | |
CN107257973A (zh) | 查询网络上的数据源 | |
US10019537B1 (en) | System and method for data search in a graph database | |
US20130086547A1 (en) | Real-time operational reporting and analytics on development entities | |
US20080162457A1 (en) | Software and method for utilizing a generic database query | |
US11726999B1 (en) | Obtaining inferences to perform access requests at a non-relational database system | |
Kossmann et al. | SWIRL: Selection of Workload-aware Indexes using Reinforcement Learning. | |
US8135697B2 (en) | Search-friendly templates | |
CN108228762B (zh) | 用于配置主数据库通用模板的方法和系统 | |
US7596584B2 (en) | Predicate based group management | |
Ahmed et al. | Generating data warehouse schema | |
CN107533559A (zh) | 数据结构、用于填充数据结构的模型以及使用数据结构对处理装置进行编程的方法 |
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 |