CN111831687A - 数据查询的优化方法、装置、计算机设备和存储介质 - Google Patents
数据查询的优化方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111831687A CN111831687A CN202010590989.1A CN202010590989A CN111831687A CN 111831687 A CN111831687 A CN 111831687A CN 202010590989 A CN202010590989 A CN 202010590989A CN 111831687 A CN111831687 A CN 111831687A
- Authority
- CN
- China
- Prior art keywords
- query
- query statement
- statement
- preset
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000005457 optimization Methods 0.000 title abstract description 16
- 238000012545 processing Methods 0.000 claims description 31
- 230000000875 corresponding effect Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010606 normalization Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 5
- 230000002596 correlated effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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/2453—Query optimisation
-
- 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/24564—Applying rules; Deductive queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请揭示了一种数据查询的优化方法、装置、计算机设备和存储介质,在执行优化方法的时候,首选判断第一查询语句是否存在预设问题的查询语句,如果是,则将其调成为与第一查询语句的查询目的一致、且不存在预设问题的第二查询语句,然后利用第二查询语句到数据库中进行数据查询,预设问题基本是开发者认为影响查询效率的问题,将这些预设问题进行标准化处理后得到第二查询语句,利用第二查询语句进行数据查询,会大大地提高数据查询的效率。
Description
技术领域
本申请涉及到数据查询领域,特别是涉及到一种数据查询的优化方法、装置、计算机设备和存储介质。
背景技术
为了企业信息的安全,在办公网环境不允许直接访问数据库,需要通过数据库查询平台来查询获取数据。
在项目开发的日常测试工作中需要经常查询数据或对数据库进行某种操作以完成对应的测试工作。在数据库查询平台上进行各种查询操作时,很多时候用户都会因为方便或者基于自己的习惯,编写一些只为了实现查询目的、但不考虑性能的SQL语句来发起查询操作,这样当查询的数据记录很多,或者同时登陆平台做查询操作的用户很多,或者对某个数据库同一时间的查询量很大时,会对数据库造成很大的压力,查询效率也会变得很低。
发明内容
本申请的主要目的为提供一种数据查询的优化方法、装置、计算机设备和存储介质,旨在解决现有技术中在数据库中查询数据效率低的问题。
为了实现上述发明目的,本申请提出一种数据查询的优化方法,包括:
接收传入的第一查询语句;
判断所述第一查询语句是否属于预设查询语句,其中,所述预设查询语句包括预设问题,所述预设问题包括一种或者多种;
若属于,则对所述第一查询语句进行标准化处理,得到第二查询语句,其中,标准化处理是指将所述预设问题按照预设的规则进行处理,所述第二查询语句的查询目的与所述第一查询语句的查询目的相同;
利用所述第二查询语句进行数据查询。
进一步地,所述判断所述第一查询语句是否属于预设查询语句的步骤,包括:
判断所述第一查询语句是否包含指定符号和\或指定查询条件;
若是,则判定所述第一查询语句属于预设查询语句。
进一步地,所述对所述第一查询语句进行标准化处理的步骤,包括:
若所述第一查询语句中存在所述指定符号,则获取预设待查询列表,其中,所述预设待查询列表中包括与所述指定符号相互映射的参数;
将所述第一查询语句中的所述指定符号替换成所述待查询列表中对应的参数,以得到所述第二查询语句;或者,
若所述第一查询语句中存在多表查询,则调整所述第一查询语句中第一指定位置后面的多个表的顺序,并将记录条数最少的表放到最后,以得到所述第二查询语句;或者,
若所述第一查询语句中存在where条件且带有表连接条件,则将表连接条件放到第二指定位置的后面作为第一个条件,以得到所述第二查询语句;或者,
若所述第一查询语句中存在大数量查询,则进行深度分页处理,调整查询的起始位数,以得到所述第二查询语句。
进一步地,所述利用所述第二查询语句进行数据查询的步骤之后,还包括:
将所述第一查询语句、第二查询语句,以及通过所述第二查询语句查询到的查询结果关联地保存在预设存储空间中,并指定存储的时间长度;
识别是否接收到第三查询语句;
若接收到所述第三查询语句,则判断所述第三查询语句与所述第一查询语句是否相同;
若相同,则调用保存的所述查询结果并反馈给所述第三查询语句对应的客户端;
若不相同,则对所述第三查询语句进行标准化处理得到第四查询语句,其中,所述第三查询语句的标准化处理方式与所述第一查询语句的标准化处理方式相同;
判断所述第四查询语句与所述第二查询语句是否相同;
若所述第四查询语句与所述第二查询语句相同,则调用保存的所述查询结果并反馈给所述第三查询语句对应的客户端。
进一步地,所述接收传入的第一查询语句的步骤,包括:
当同时接收到同一用户发送的多条查询语句时,将多条查询语句合并成一条所述第一查询语句;并且,
所述利用所述第二查询语句进行数据查询的步骤之后,包括:
将查询结果拆分成与所述多条查询语句分别对应的多张查询表。
进一步地,所述利用所述第二查询语句进行数据查询的步骤之后,还包括:
统计所述第一查询语句在指定时间长度内传入的次数;
判断所述次数是否大于预设次数阈值;
若是,则将利用所述第二查询语句得到的查询结果保存到预设的第二存储空间中,并建立所述第一查询语句与所述查询结果的映射关系;
当接收到与所述第一查询语句相同的查询语句时,直接到所述第二存储空间中调用所述查询结果。
进一步地,所述将利用所述第二查询语句得到的查询结果保存到预设的第二存储空间中的步骤之后,还包括:
判断存储有全部待查询数据的数据库中数据是否更新;
若是,则利用所述第二查询语句在更新数据后的所述数据库中进行数据查询,并根据查询结果更新所述第二存储空间中的数据。
本申请还提供一种数据查询的优化装置,包括:
接收单元,用于接收传入的第一查询语句;
判断单元,用于判断所述第一查询语句是否属于预设查询语句,其中,所述预设查询语句包括预设问题,所述预设问题包括一种或者多种;
调整单元,用于对所述第一查询语句进行标准化处理,得到第二查询语句,其中,标准化处理是指将所述预设问题按照预设的规则进行处理,所述第二查询语句的查询目的与所述第一查询语句的查询目的相同;
查询单元,用于利用所述第二查询语句进行数据查询。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的一种数据查询的优化方法、装置、计算机设备和存储介质,在执行优化方法的时候,首选判断第一查询语句是否存在预设问题的查询语句,如果是,则将其调整为与第一查询语句的查询目的一致、且不存在预设问题的第二查询语句,然后利用第二查询语句在数据库中进行数据查询,预设问题是开发者认为影响查询效率的问题,将所述预设问题进行标准化处理后得到第二查询语句,利用第二查询语句进行数据查询,大大提高了数据查询的效率。
附图说明
图1为本发明一实施例的数据查询的优化方法的流程示意图;
图2为本发明一实施例的数据查询的优化方法的步骤S2的流程示意图;
图3为本发明一实施例的数据查询的优化方法的流程示意图;
图4为本发明一实施例的数据查询的优化方法的流程示意图;
图5为本发明一实施例的数据查询的优化方法的流程示意图;
图6为本发明一实施例的数据查询的优化装置的结构示意框图;
图7为本发明一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提出一种数据查询的优化方法,包括:
S1、接收传入的第一查询语句;
S2、判断所述第一查询语句是否属于预设查询语句,其中,所述预设查询语句包括预设问题,所述预设问题包括一种或者多种;
S3、若属于,则对所述第一查询语句进行标准化处理,得到第二查询语句,其中,标准化处理是指将所述预设问题按照预设的规则进行处理,所述第二查询语句的查询目的与所述第一查询语句的查询目的相同;
S4、利用所述第二查询语句进行数据查询。
如上述步骤S1所述,执行本申请的主体可以是数据库查询平台,也可以是一个具有处理数据能力的中间服务器等。上述第一查询语句即为可以到数据库查询平台查询数据的语句。
如上述步骤S2所述,上述预设查询语句是指存在预设问题的查询语句,所述预设问题包括一种或者多种,预设问题是指开发者认为的问题,只要第一查询语句中存在任意一个预设问题,即会判定第一查询语句是预设查询语句。上述预设问题通常是影响查询效率的问题。
如上述步骤S3所述,在上述步骤S2中,已经确定了第一查询语句中存在哪些预设问题,本步骤即为将预设问题进行标准化处理,标准化处理即为将所述预设问题按照预设的规则进行处理,将第一查询语句中的预设问题去除掉,并且不会影响第一查询语句的查询结果,去除方法,可以通过开发者设置的修改规则对第一查询语句修改,只要修改后得到的第二查询语句不存在预设问题,且查询目的与第一查询语句对应即可,在此不做具体限定。
如上述步骤S4所述,即为利用第二查询语句进行数据查询的步骤。当执行主体是数据库查询平台时,直接进行数据查询,如果执行主体是具有处理数据能力的中间服务器,则通过中间服务器将第二查询语句发送到数据库查询平台进行数据查询。
参照图2,在一个实施例中,上述判断所述第一查询语句是否属于预设查询语句的步骤S2,包括:
S201、判断所述第一查询语句是否包含指定符号和\或指定查询条件;
S202、若是,则判定所述第一查询语句属于预设查询语句。
在本实施例中,以第一查询语句为SQL查询语句为例,指定符号为“*”号,当第一查询语句中存在“*”号,如果直接传递“*”号给数据库,那么数据库要通过查询数据字典将“*”号转换成所有字段名,这个过程是非常耗费时间性能的,所当以第一查询语句中存在“*”号时,第一查询语句属于预设查询语句。同样以第一查询语句为SQL查询语句为例,指定查询条件包括多表查询、含有where条件且带有表连接条件、大数量查询等,当第一查询语句是多表查询时,因为每一个表中的记录数不同,如果不考虑各表的记录数,直接进行查询会影响查询的效率,所以当第一查询语句是多表查询时,第一查询语句属于预设查询语句。当第一查询语句中含有where条件且带有表连接条件,同样会影响查询效率,因此当第一查询语句中含有where条件且带有表连接条件时,第一查询语句属于预设查询语句。同样的,当第一查询语句中存在大数量查询时,如果从第一位开始查询,则影响查询效率,因此当第一查询语句中存在大数量查询时,第一查询语句属于预设查询语句。
在一个实施例中,上述对所述第一查询语句进行标准化处理,得到第二查询语句的步骤,包括:
若所述第一查询语句中存在所述指定符号,则获取预设待查询列表,其中,所述预设待查询列表中包括与所述指定符号相互映射的参数;
将所述第一查询语句中的所述指定符号替换成所述待查询列表中对应的参数,以得到所述第二查询语句;或者,
若所述第一查询语句中存在多表查询,则调整所述第一查询语句中第一指定位置后面的多个表的顺序,并将记录条数最少的表放到最后,以得到所述第二查询语句;或者,
若所述第一查询语句中存在where条件且带有表连接条件,则将表连接条件放到第二指定位置的后面作为第一个条件,以得到所述第二查询语句;或者,
若所述第一查询语句中存在大数量查询,则进行深度分页处理,调整查询的起始位数,以得到所述第二查询语句。
在本实施例中,具体说明了当第一查询语句存在上述各种预设问题时的具体解决手段。以第一查询语句为SQL查询语句为例,具体地,上述指定符号为“*”号,先根据第一查询语句确定具体的需要查询的表,然后提取该待查询的表中的字段名,并替换“*”,如果直接传递“*”号给数据库,那么数据库要通过查询数据字典将“*”号转换成所有字段名,这个过程十分耗费时间,降低查询效率。当第一查询语句中使用多表查询时,上述第一指定位置为form单词的位置,自动地先调整第一查询语句中from后面的多个表的顺序,保证记录条数最少的表放到最后,然后再发起查询。举个例子,当用户写的SQL语句是select a.id,b.name,c.age from tabela a,tableb b,tablec c时,由于tableb c表中记录数最少,tableb b表中记录数第二少,tablea a表中记录数最多,那么这条SQL语句会被平台调整为select a.id,b.name,c.age from tabelc c,tableb b,tablea a,之后再向数据库发起查询,判断各表中记录条数的方法可以是:执行主体先对第一查语句进行预处理,得到待查询的每个表的记录数,然后排序,通过对每个表执行select count(*)即可得出。当第一查询语句中使用where条件并且带有表连接条件时,第二指定位置为where单词的位置,平台会自动地先将表连接条件放到where的后面作为第一个条件,把where条件调整到后面,这样就可以在表连接查询之前,先利用where条件筛选掉一部分数据,从而在表连接查询时效率更高。当第一查询语句中存在大数量查询时,自动优化为深度分页,举个例子,select*fromcomments limit 1000005,5会标准化处理成select*from comments where id>100000limit 0,5。原理:这样数据库中就会从第100000条开始查,而不是从第1条开始,查询更加高效。在一个具体实施例中,当第一查询语句含有上述多个预设问题的时候,可以同时进行标准化处理,也可以按照预设的顺序进行标准化处理。
参照图3,在一个实施例中,上述利用所述第二查询语句进行数据查询的步骤S4之后,还包括:
S5、将所述第一查询语句、第二查询语句,以及通过所述第二查询语句查询到的查询结果关联地保存在预设存储空间中,并指定存储的时间长度;
S6、识别是否接收到第三查询语句;
S7、若接收到所述第三查询语句,则判断所述第三查询语句与所述第一查询语句是否相同;
S8、若相同,则调用保存的所述查询结果并反馈给所述第三查询语句对应的客户端;
S9、若不相同,则对所述第三查询语句进行标准化处理得到第四查询语句,其中,所述第三查询语句的标准化处理方式与所述第一查询语句的标准化处理方式相同;
S10、判断所述第四查询语句与所述第二查询语句是否相同;
S11、若所述第四查询语句与所述第二查询语句相同,则调用保存的所述查询结果并反馈给所述第三查询语句对应的客户端。
在本实施例中,上述指定存储的时间长度一般是一个较短的时间,如一秒、两秒等,当指定存储的时间长度到达后,即会删除。需要注意的,上述需要保存的查询结果是指到数据库中进行数据查询而得到结果,并不是指到存储空间中调用的查询结果。具体地,执行主体会先分析第三查询语句与存储空间中的查询结果是否对应,查询的方法即为比较存储空间中的查询结果对应的第一查询语句,是否与新得到第三查询语句相同,如果相同,则直接调用,如果不同,则将第三查询语句标准化处理成第四查询语句,然后判断第四查询语句是否与第二查询语句相同,如果相同则直接调用上述查询结果,否则会利用第四查询语句到数据库查询平台进行数据查询,并将查询结果保存在上述预设存储空间中,并指定存储的时间长度,当有多个用户在平台上进行相同查询时,平台会将保存的数据记录直接返回给其他用户,减少对数据库的访问次数,减少数据库的负荷。
参照图4,在一个实施例中,上述接收传入的第一查询语句的步骤S1,包括:
S101、当同时接收到同一用户发送的多条查询语句时,将多条查询语句合并成一条所述第一查询语句。
如上述步骤S101所述,当用户同时发起多个查询语句时,将这些查询语句整合成一条第一查询语句进行发送。将多个查询语句合并成一条的方法可以为:读取多个查询语句,用正则表达式解析这些语句,将需要查询的字段、表、条件都提取出来,然后组装成一条语句,再发送给数据库。对于数据库来说,建立连接的开销比较大,将多条查询语句合并成一条语句,可以有效地减少重复地建立数据库连接,节约连接数据库的开销。比如,提取select name from tablea,可用正则表达式select(.*)from(.*)将name和tablea提取出来,存在临时变量中。同理,也可以把select id from tableb中的id和tableb提取出来存在临时变量中。后续再使用字符串拼接,将这些变量拼接成完整的一条查询语句。举个例子,用户编写两个查询语句,select name from tablea;selectid from tableb;那么执行主体会整合成select a.name,b.id from tablea a,tableb b之后再向数据库发起查询,这样做的目的是一个查询比多个查询更加高效,而且减少数据库访问次数。
所述利用所述第二查询语句进行数据查询的步骤S4之后,包括:
S41、将查询结果拆分成与所述多条查询语句分别对应的多张查询表。
在本实施例中,由多条查询语句组合成一条的第一查询语句,得到查询结果后,还会对查询结果进行拆分,得到对应各查询语句的结果列表,延续上述例子,用户编写两个查询语句,select name from tablea;select id from tableb;那么执行主体会整合成select a.name,b.id from tablea a,tableb b之后再向数据库发起查询,当获得查询结果后,再将结果分解成两张表的结果展示给用户。
参照图5,在一个实施例中,上述利用所述第二查询语句进行数据查询的步骤S4之后,还包括:
S12、统计所述第一查询语句在指定时间长度内传入的次数;
S13、判断所述次数是否大于预设次数阈值;
S14、若是,则将利用所述第二查询语句得到的查询结果保存到预设的第二存储空间中,并建立所述第一查询语句与所述查询结果的映射关系;
S15、当接收到与所述第一查询语句相同的查询语句时,直接到所述第二存储空间中调用所述查询结果。
在本实施例中,上述指定时间长度是以接收到所述第一查询语句开始向前推算的时间长度,该指定时间长度可以是一周、15天等不同的时间长度,开发人员可以根据经验进行设定。当在指定时间内,第一查询语句传入的次数大于次数阈值,则说明第一查询语句是一个使用频率很高的查询语句,为了提高查询效率,将第一查询语句对应的结果提前放入到预设的存储空间中,当再次传入与所述第一查询语句相同的查询语句时,无需将其整理成第二查询语句,可直接到上述第二存储空间调用,提高查询效率。需要注意的是,上述第一查询语句是一个代指,所以可以存在对应不同查询语句的多个不同的第二存储空间,即不同的第二存储空间中只存储对应一个查询语句的数据。
参照图5,在一个实施例中,上述将利用所述第二查询语句得到的查询结果保存到预设的第二存储空间中的步骤之后,还包括:
S16、判断存储有全部待查询数据的数据库中数据是否更新;
S17、若是,则利用所述第二查询语句在更新数据后的所述数据库中进行数据查询,并根据查询结果更新所述第二存储空间中的数据。
在本实施例中,为了保证第二存储空间中的数据都是最新数据,保证会面的第一查询语句的查询结果可以正常使用,会监听数据库的更新状态,如果有更新,则使用对应第一查询语句的第二查询语句到数据库中进行查询,以更新第二存储空间中的数据。
在一个实施例中,上述将利用所述第二查询语句得到的查询结果保存到预设的第二存储空间中,并建立所述第一查询语句与所述查询结果的映射关系的步骤之后,包括:
当建立第二存储空间之后,统计经过所述指定时间长度之后,传入第一查询语句的第二次数是否大于所述次数阈值;
若否,则释放所述第二存储空间。
在本实施例中,数据查询的需求可能会根据业务的淡季或旺季而不同,所以不同的查询语句的出现频次也就可能发生变化。因此,在本方案中,当在指定时间长度内,第一查询语句的传入次数小于或等与次数阈值时,则说明第一查询语句的查询需求变小,无需占用存储资源,所以将其对应的存储资源释放掉。
在一个实施例中,当所有的所述第二存储空间的存储空间与所述数据库的存储空间的和大于阈值空间值时,将传入频率最小第一查询语句对应的第二存储空间释放。
本申请实施例中的数据查询的优化方法,首选判断第一查询语句是否存在预设问题的查询语句,如果是,则将其调整为与第一查询语句的查询目的一致、且不存在预设问题的第二查询语句,然后利用第二查询语句在数据库中进行数据查询,预设问题是开发者认为影响查询效率的问题,将所述预设问题进行标准化处理后得到第二查询语句,利用第二查询语句进行数据查询,大大提高了数据查询的效率。
参照图6,本申请实施例提出一种数据查询的优化装置,包括:
接收单元10,用于接收传入的第一查询语句;
判断单元20,用于判断所述第一查询语句是否属于预设查询语句,其中,所述预设查询语句包括预设问题,所述预设问题包括一种或者多种;
调整单元30,用于对所述第一查询语句进行标准化处理,得到第二查询语句,其中,标准化处理是指将所述预设问题按照预设的规则进行处理,所述第二查询语句的查询目的与所述第一查询语句的查询目的相同;
查询单元40,用于利用所述第二查询语句进行数据查询。
在一个实施例中,上述判断单元20,包括:
判断模块,用于判断所述第一查询语句是否包含指定符号和\或指定查询条件;
判定模块,用于若包含指定符号和\或指定查询条件,则判定所述第一查询语句属于预设查询语句。
在一个实施例中,上述调整单元30,包括:
第一调整模块,用于若所述第一查询语句中存在所述指定符号,则获取预设待查询列表,其中,所述预设待查询列表中包括与所述指定符号相互映射的参数;将所述第一查询语句中的所述指定符号替换成所述待查询列表中对应的参数,以得到所述第二查询语句;
第二调整模块,用于若所述第一查询语句中存在多表查询,则调整所述第一查询语句中第一指定位置后面的多个表的顺序,并将记录条数最少的表放到最后,以得到所述第二查询语句;
第三调整模块,用于若所述第一查询语句中存在where条件且带有表连接条件,则将表连接条件放到第二指定位置的后面作为第一个条件,以得到所述第二查询语句;
第四调整模块,用于若所述第一查询语句中存在大数量查询,则进行深度分页处理,调整查询的起始位数,以得到所述第二查询语句。
在一个实施例中,上述数据查询的优化装置,还包括:
关联保存单元,用于将所述第一查询语句、第二查询语句,以及通过所述第二查询语句查询到的查询结果关联地保存在预设存储空间中,并指定存储的时间长度;
识别单元,用于识别是否接收到第三查询语句;
接收判断单元,用于若识别接收到所述第三查询语句,则判断所述第三查询语句与所述第一查询语句是否相同;
第一调用反馈单元,用于若所述第三查询语句与所述第一查询语句相同,则调用保存的所述查询结果并反馈给所述第三查询语句对应的客户端;
优化单元,用于若所述第三查询语句与所述第一查询语句不相同,则对所述第三查询语句进行标准化处理得到第四查询语句,其中,所述第三查询语句的标准化处理方式与所述第一查询语句的标准化处理方式相同;
再次判断单元,用于判断所述第四查询语句与所述第二查询语句是否相同;
第二调用反馈单元,用于若所述第四查询语句与所述第二查询语句相同,则调用保存的所述查询结果并反馈给所述第三查询语句对应的客户端。
在一个实施例中,上述接收单元10,包括:
接收合并模块,用于当同时接收到同一用户发送的多条查询语句时,将多条查询语句合并成一条所述第一查询语句。
所述数据查询的优化装置,还包括:
拆分单元,用于将查询结果拆分成与所述多条查询语句分别对应的多张查询表。
在一个实施例中,上述数据查询的优化装置,还包括:
统计单元,用于统计所述第一查询语句在指定时间长度内传入的次数;
阈值判断单元,用于判断所述次数是否大于预设次数阈值;
保存建立单元,用于若所述次数大于预设次数阈值,则将利用所述第二查询语句得到的查询结果保存到预设的第二存储空间中,并建立所述第一查询语句与所述查询结果的映射关系;
查找单元,用于当接收到与所述第一查询语句相同的查询语句时,直接到所述第二存储空间中调用所述查询结果。
在一个实施例中,上述数据查询的优化装置,还包括:
更新判断单元,用于判断存储有全部待查询数据的数据库中数据是否更新;
更新单元,用于若存储有全部待查询数据的数据库中数据更新,则利用所述第二查询语句在更新数据后的所述数据库中进行数据查询,并根据查询结果更新所述第二存储空间中的数据。
在一个实施例中,上述数据查询的优化装置,还包括:
统计判断单元,用于当建立第二存储空间之后,统计经过所述指定时间长度之后,传入第一查询语句的第二次数是否大于所述次数阈值;
释放单元,用于若传入第一查询语句的第二次数不否大于所述次数阈值,则释放所述第二存储空间。
在一个实施例中,上述数据查询的优化装置,还包括:
自动释放单元,用于当所有的所述第二存储空间的存储空间与所述数据库的存储空间的和大于阈值空间值时,将传入频率最小第一查询语句对应的第二存储空间释放。
上述各单元、模块均是对应执行上述方法的装置。
本申请实施例中的数据查询的优化装置,首选判断第一查询语句是否存在预设问题的语句,如果是,则将其调成为与第一查询语句的查询目的一致、且不存在预设问题的第二查询语句,然后利用第二查询语句到数据库中进行数据查询,预设问题基本是开发者认为影响查询效率的问题,所以将这些预设问题排除后,利用第二查询语句进行数据查询,会大大地提高数据查询的效率。
参照图7,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待查询数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时可以实现上述任意一个实施例的数据查询的优化方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一个实施例的数据查询的优化方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM一多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内内。
Claims (10)
1.一种数据查询的优化方法,其特征在于,包括:
接收传入的第一查询语句;
判断所述第一查询语句是否属于预设查询语句,其中,所述预设查询语句包括预设问题,所述预设问题包括一种或者多种;
若属于,则对所述第一查询语句进行标准化处理,得到第二查询语句,其中,标准化处理是指将所述预设问题按照预设的规则进行处理,所述第二查询语句的查询目的与所述第一查询语句的查询目的相同;
利用所述第二查询语句进行数据查询。
2.根据权利要求1所述的数据查询的优化方法,其特征在于,所述判断所述第一查询语句是否属于预设查询语句的步骤,包括:
判断所述第一查询语句是否包含指定符号和\或指定查询条件;
若是,则判定所述第一查询语句属于预设查询语句。
3.根据权利要求2所述的数据查询的优化方法,其特征在于,所述对所述第一查询语句进行标准化处理的步骤,包括:
若所述第一查询语句中存在所述指定符号,则获取预设待查询列表,其中,所述预设待查询列表中包括与所述指定符号相互映射的参数;
将所述第一查询语句中的所述指定符号替换成所述待查询列表中对应的参数,以得到所述第二查询语句;或者,
若所述第一查询语句中存在多表查询,则调整所述第一查询语句中第一指定位置后面的多个表的顺序,并将记录条数最少的表放到最后,以得到所述第二查询语句;或者,
若所述第一查询语句中存在where条件且带有表连接条件,则将表连接条件放到第二指定位置的后面作为第一个条件,以得到所述第二查询语句;或者,
若所述第一查询语句中存在大数量查询,则进行深度分页处理,调整查询的起始位数,以得到所述第二查询语句。
4.根据权利要求1所述的数据查询的优化方法,其特征在于,所述利用所述第二查询语句进行数据查询的步骤之后,还包括:
将所述第一查询语句、第二查询语句,以及通过所述第二查询语句查询到的查询结果关联地保存在预设存储空间中,并指定存储的时间长度;
识别是否接收到第三查询语句;
若接收到所述第三查询语句,则判断所述第三查询语句与所述第一查询语句是否相同;
若相同,则调用保存的所述查询结果并反馈给所述第三查询语句对应的客户端;
若不相同,则对所述第三查询语句进行标准化处理得到第四查询语句,其中,所述第三查询语句的标准化处理方式与所述第一查询语句的标准化处理方式相同;
判断所述第四查询语句与所述第二查询语句是否相同;
若所述第四查询语句与所述第二查询语句相同,则调用保存的所述查询结果并反馈给所述第三查询语句对应的客户端。
5.根据权利要求1所述的数据查询的优化方法,其特征在于,所述接收传入的第一查询语句的步骤,包括:
当同时接收到同一用户发送的多条查询语句时,将多条查询语句合并成一条所述第一查询语句;并且,
所述利用所述第二查询语句进行数据查询的步骤之后,还包括:
将查询结果拆分成与所述多条查询语句分别对应的多张查询表。
6.根据权利要求1所述的数据查询的优化方法,其特征在于,所述利用所述第二查询语句进行数据查询的步骤之后,还包括:
统计所述第一查询语句在指定时间长度内传入的次数;
判断所述次数是否大于预设次数阈值;
若是,则将利用所述第二查询语句得到的查询结果保存到预设的第二存储空间中,并建立所述第一查询语句与所述查询结果的映射关系;
当接收到与所述第一查询语句相同的查询语句时,直接到所述第二存储空间中调用所述查询结果。
7.根据权利要求6所述的数据查询的优化方法,其特征在于,所述将利用所述第二查询语句得到的查询结果保存到预设的第二存储空间中的步骤之后,还包括:
判断存储有全部待查询数据的数据库中数据是否更新;
若是,则利用所述第二查询语句在更新数据后的所述数据库中进行数据查询,并根据查询结果更新所述第二存储空间中的数据。
8.一种数据查询的优化装置,其特征在于,包括:
接收单元,用于接收传入的第一查询语句;
判断单元,用于判断所述第一查询语句是否属于预设查询语句,其中,所述预设查询语句包括预设问题,所述预设问题包括一种或者多种;
调整单元,用于对所述第一查询语句进行标准化处理,得到第二查询语句,其中,标准化处理是指将所述预设问题按照预设的规则进行处理,所述第二查询语句的查询目的与所述第一查询语句的查询目的相同;
查询单元,用于利用所述第二查询语句进行数据查询。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010590989.1A CN111831687A (zh) | 2020-06-24 | 2020-06-24 | 数据查询的优化方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010590989.1A CN111831687A (zh) | 2020-06-24 | 2020-06-24 | 数据查询的优化方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831687A true CN111831687A (zh) | 2020-10-27 |
Family
ID=72899418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010590989.1A Pending CN111831687A (zh) | 2020-06-24 | 2020-06-24 | 数据查询的优化方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831687A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590647A (zh) * | 2021-07-29 | 2021-11-02 | 中国联合网络通信集团有限公司 | Sql语句优化方法、装置、设备、存储介质及产品 |
CN113626427A (zh) * | 2021-07-07 | 2021-11-09 | 厦门市美亚柏科信息股份有限公司 | 一种基于规则引擎的主题检索方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572979A (zh) * | 2014-12-31 | 2015-04-29 | 北京锐安科技有限公司 | 一种处理结构化查询语言sql的方法及装置 |
CN110134706A (zh) * | 2019-04-01 | 2019-08-16 | 平安科技(深圳)有限公司 | Sql语句自动优化方法、装置、计算机设备以及存储介质 |
CN110716949A (zh) * | 2019-09-10 | 2020-01-21 | 平安普惠企业管理有限公司 | 结构化查询语句自动优化方法、装置、介质及电子设备 |
-
2020
- 2020-06-24 CN CN202010590989.1A patent/CN111831687A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572979A (zh) * | 2014-12-31 | 2015-04-29 | 北京锐安科技有限公司 | 一种处理结构化查询语言sql的方法及装置 |
CN110134706A (zh) * | 2019-04-01 | 2019-08-16 | 平安科技(深圳)有限公司 | Sql语句自动优化方法、装置、计算机设备以及存储介质 |
CN110716949A (zh) * | 2019-09-10 | 2020-01-21 | 平安普惠企业管理有限公司 | 结构化查询语句自动优化方法、装置、介质及电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626427A (zh) * | 2021-07-07 | 2021-11-09 | 厦门市美亚柏科信息股份有限公司 | 一种基于规则引擎的主题检索方法和系统 |
CN113626427B (zh) * | 2021-07-07 | 2022-07-22 | 厦门市美亚柏科信息股份有限公司 | 一种基于规则引擎的主题检索方法和系统 |
CN113590647A (zh) * | 2021-07-29 | 2021-11-02 | 中国联合网络通信集团有限公司 | Sql语句优化方法、装置、设备、存储介质及产品 |
CN113590647B (zh) * | 2021-07-29 | 2024-02-23 | 中国联合网络通信集团有限公司 | Sql语句优化方法、装置、设备、存储介质及产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020186786A1 (zh) | 文件处理方法、装置、计算机设备和存储介质 | |
CN109325041B (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN108563734B (zh) | 制度信息查询方法、装置、计算机设备和存储介质 | |
CN109558440A (zh) | 数据批量处理方法、装置、计算机设备及存储介质 | |
CN110377651B (zh) | 批量数据的处理方法、装置、设备及存储介质 | |
CN109344197B (zh) | 基于大数据的分页下载方法和装置 | |
CN111310427A (zh) | 业务数据配置处理方法、装置、计算机设备和存储介质 | |
CN109062925B (zh) | 自动生成insert语句的方法、装置、计算机设备及存储介质 | |
CN113220782A (zh) | 多元测试数据源生成方法、装置、设备及介质 | |
CN111831687A (zh) | 数据查询的优化方法、装置、计算机设备和存储介质 | |
CN112286934A (zh) | 数据库表导入方法、装置、设备及介质 | |
CN110347810B (zh) | 对话式检索回答方法、装置、计算机设备及存储介质 | |
CN108415998B (zh) | 应用依赖关系更新方法、终端、设备及存储介质 | |
CN111104419A (zh) | 一种数据查询方法及装置 | |
CN111083054B (zh) | 路由配置处理方法、装置、计算机设备和存储介质 | |
CN107247792B (zh) | 匹配职能部门的方法、装置及计算机设备 | |
CN109656947B (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN112507010B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
US20210132754A1 (en) | Systems and methods for transforming user interfaces based on database interactions | |
CN111506573B (zh) | 数据库表分区方法、装置、计算机设备及存储介质 | |
CN111176882A (zh) | 特定数据处理方法、装置、计算机设备及存储介质 | |
CN113254470B (zh) | 一种数据更改方法、装置、计算机设备及存储介质 | |
CN115374849A (zh) | 企业相关专利检索方法、装置、设备及介质 | |
CN115687490A (zh) | 一种数据导出方法、装置、计算机设备和存储介质 | |
CN114968346A (zh) | Ddl脚本的字段注释检测方法、装置、设备及存储介质 |
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 |