CN105243072A - 一种数据库查询方法及系统 - Google Patents

一种数据库查询方法及系统 Download PDF

Info

Publication number
CN105243072A
CN105243072A CN201410332414.4A CN201410332414A CN105243072A CN 105243072 A CN105243072 A CN 105243072A CN 201410332414 A CN201410332414 A CN 201410332414A CN 105243072 A CN105243072 A CN 105243072A
Authority
CN
China
Prior art keywords
request
data base
base querying
query
described 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
Application number
CN201410332414.4A
Other languages
English (en)
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.)
Beijing Shenzhou Taiyue Software Co Ltd
Original Assignee
Beijing Shenzhou Taiyue Software 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 Beijing Shenzhou Taiyue Software Co Ltd filed Critical Beijing Shenzhou Taiyue Software Co Ltd
Priority to CN201410332414.4A priority Critical patent/CN105243072A/zh
Publication of CN105243072A publication Critical patent/CN105243072A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据库查询方法和系统,涉及数据库技术领域。本发明实施例接收数据库查询请求;判断该请求是否为初次请求;若该请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中;若该请求不是初次请求,则在缓存中获取该数据库查询请求的查询结果。相同的SQL在同时请求数据库时,只请求一次并返回结果,其它的请求获取这个请求的结果,即在一定条件下,一段时间内查询SQL语句只有第一次生效,其余的则等待查询的结果。将多次SQL请求压缩成一次,能减轻数据库负担,从而解决多次数据库请求造成数据库拥堵的技术问题,且提高了SQL查询返回结果集的速度,后续请求使用的是第一次请求的结果集,大大缩短查询时间。

Description

一种数据库查询方法及系统
技术领域
本发明涉及数据库技术领域,特别涉及一种数据库查询方法和系统。
背景技术
现在市面上常见的系统很多都是一个页面里附带着一个或多个数据库请求,比如目录页面、树节点页面、查询条件页面、报表等。访问这样的页面往往都伴随数据库请求,多次刷新同一个页面相应的数据库请求也会使用同一个SQL去多次查询数据库。
现有的数据库SQL在查询时,用户的每次请求页面都会有一次SQL去查询数据库。当多次刷新同一页面时就会发出多个相同的SQL请求并查询多次数据库,所有的查询都下发到数据库加剧拥塞,给数据库造成不必要的负担。因此,迫切需要一种能解决多次数据库请求造成数据库拥堵的解决方案,以适应多数据库请求的需求。
发明内容
鉴于上述问题,本发明实施例提供一种数据库查询方法和系统,将多次SQL请求压缩成一次,能够减轻数据库的负担,从而解决多次数据库请求造成数据库拥堵的技术问题。
本发明实施例采用了如下技术方案:
本发明一个实施例提供了一种数据库查询方法,所述方法包括:
接收数据库查询请求;
判断所述数据库查询请求是否为初次请求;
若所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中;
若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果。
所述判断所述数据库查询请求是否为初次请求包括:
检索标记正在查询请求中是否有与所述数据库查询请求相同的查询请求;
若有则确定所述数据库查询请求不是初次请求;
若没有则确定所述数据库查询请求是初次请求,并将所述数据库查询请求标记为正在查询请求。
所述若所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中包括:
若所述数据库查询请求是初次请求,则执行对应的数据库查询操作;
将查询结果存入缓存,且与所述数据库查询请求相对应;
在标记的正在查询请求中将所述数据库查询请求删除。
所述若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果包括:
若所述数据库查询请求不是初次请求,则在缓存中查询所述数据库查询请求对应的查询结果是否存在;
若存在则直接获取所述查询结果;
若不存在,则等待查询周期后,再次在缓存中查询所述数据库查询请求对应的查询结果是否存在,直至在缓存中查询到所述数据库查询请求对应的查询结果,并获取所述查询结果。
所述等待查询周期后还包括:
判断当前距离初次接收到所述数据库查询请求的时间是否超过存活周期;
若超过存活周期,则在标记的正在查询请求中将所述数据库查询请求删除,并返回超时异常,结束;
若未超过存活周期,则执行所述再次在缓存中查询所述数据库查询请求对应的查询结果是否存在。
所述将查询结果存入缓存,且与所述数据库查询请求相对应之后还包括:
监控所述查询结果的存储时间是否超过缓存占用周期;在所述查询结果的存储时间超过缓存占用周期时,在缓存中删除所述查询结果。
另外,本发明实施例还提供了一种数据库查询系统,所述系统包括:
请求接收模块,用于接收数据库查询请求;
判断模块,用于判断所述数据库查询请求是否为初次请求;
初次请求执行模块,用于若所述判断模块的判断结果是所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中;
再次请求执行模块,用于若所述判断模块的判断结果是若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果。
所述判断模块包括:
检索单元,用于检索标记正在查询请求中是否有与所述数据库查询请求相同的查询请求;
第一确定单元,用于若有则确定所述数据库查询请求不是初次请求;
第二确定单元,用于若没有则确定所述数据库查询请求是初次请求,并将所述数据库查询请求标记为正在查询请求。
所述初次请求执行模块包括:
查询操作单元,用于若所述数据库查询请求是初次请求,则执行对应的数据库查询操作;
缓存单元,用于将查询结果存入缓存,且与所述数据库查询请求相对应;
第一删除单元,用于在标记的正在查询请求中将所述数据库查询请求删除。
所述再次请求执行模块包括:
查询单元,用于若所述数据库查询请求不是初次请求,则在缓存中查询所述数据库查询请求对应的查询结果是否存在;
第一结果获取单元,用于若所述查询单元的查询结果是存在则直接获取所述查询结果;
第二结果获取单元,用于若所述查询单元的查询结果是不存在,则等待查询周期后,再次在缓存中查询所述数据库查询请求对应的查询结果是否存在,直至在缓存中查询到所述数据库查询请求对应的查询结果,并获取所述查询结果;
所述第二结果获取单元包括:
存活周期判断子单元,用于若所述查询单元的查询结果是不存在,则等待查询周期后,判断当前距离初次接收到所述数据库查询请求的时间是否超过存活周期;
第一判断子单元,用于若所述存活周期判断子单元的判断结果为超过存活周期,则在标记的正在查询请求中将所述数据库查询请求删除,并返回超时异常,结束;
第二判断子单元,用于若所述存活周期判断子单元的判断结果为未超过存活周期,则再次在缓存中查询所述数据库查询请求对应的查询结果是否存在,直至在缓存中查询到所述数据库查询请求对应的查询结果,并获取所述查询结果;
所述初次请求执行模块还包括:
第二删除单元,用于所述缓存单元将查询结果存入缓存后,监控所述查询结果的存储时间是否超过缓存占用周期;在所述查询结果的存储时间超过缓存占用周期时,在缓存中删除所述查询结果。
本发明实施例提供一种数据库查询方法和系统,接收数据库查询请求;判断所述数据库查询请求是否为初次请求;若所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中;若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果。可见,相同的SQL在同时请求数据库时,只请求一次并返回结果,其它的请求获取这个请求的结果,即在一定条件下,一段时间内查询SQL语句只有第一次生效,其余的则等待查询的结果。将多次SQL请求压缩成一次,能够减轻数据库的负担,从而解决多次数据库请求造成数据库拥堵的技术问题,并且进一步提高了SQL查询返回结果集的速度,后续的请求使用的是第一次请求的结果集,大大缩短了查询时间。
附图说明
图1为本发明实施例提供的一种数据库查询方法流程图;
图2为本发明实施例中一种数据库查询方法示意图;
图3为本发明实施例中提供的一种数据库查询方法具体实例流程图;
图4为本发明实施例中一种数据库查询系统结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例要解决的技术问题:相同的SQL在同时请求数据库时,只请求一次并返回结果,其他的请求获取这个请求的结果。
参见图1,本发明实施例提供一种数据库查询方法,具体包括如下步骤:
S101:接收数据库查询请求。
数据库查询请求类型包括多种,比如URL请求、SQL请求等。
S102:判断所述数据库查询请求是否为初次请求。
作为优选的,本步骤中所述判断所述数据库查询请求是否为初次请求具体可以包括:
检索标记正在查询请求中是否有与所述数据库查询请求相同的查询请求;
若有则确定所述数据库查询请求不是初次请求;
若没有则确定所述数据库查询请求是初次请求,并将所述数据库查询请求标记为正在查询请求。
也就是说,对于初次的数据库查询请求,可以做个标记,用于标识为初次查询请求,且该查询请求正在查询。
S103:若所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中。
也就是说,对于初次查询的数据库查询请求,直接执行相应的数据库查询操作,并将查询结果返回即可。同时,将查询结果存入缓存中,以便在查询结果出来前的多次相同的数据库查询请求可以直接调用使用,从而实现将多次数据库查询操作压缩为一次数据库查询操作。
作为优选的,可以在缓存中,将查询结果与数据库查询请求一一对应存储,以便查询更加方便。
优选的,所述若所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中包括:
若所述数据库查询请求是初次请求,则执行对应的数据库查询操作;
将查询结果存入缓存,且与所述数据库查询请求相对应;
在标记的正在查询请求中将所述数据库查询请求删除。
本发明实施例用于解决针对数据库查询请求而言,在数据库查询操作结束前,即数据库查询结果未得到前,有可能会有多次同样的数据库查询请求提交,为了降低数据库访问压力,本发明实施例将初次数据库查询请求执行对应的数据库查询操作,在查询结果得到之前接收到的一个或多个与该初次数据库查询请求相同的数据查询请求,不再执行数据库查询操作,而是在缓存中查询是否该初次数据库查询请求的查询结果已经获得并存储在缓存中,如已经存有,则直接获取该查询结果返回即可,以实现在一次数据库查询结果获取过程中的多次相同数据库查询请求只需执行一次数据库查询操作,大大降低数据库访问压力。
需要说明的是,当数据库查询结果获取后,便在标记的正在查询请求中将所述数据库查询请求删除,也就是说,当该次数据库操作结果获取结束后,再来的相同的数据库查询请求,将会作为初次数据库查询请求重新执行本发明实施例所述流程,以便获取到最实时最精准的数据库查询结果。
S104:若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果。
也就是说,如果该数据库查询请求不是初次请求,则直接在缓存中获取到该数据库查询请求的查询结果,返回即可。
作为优选的,本步骤所述若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果具体包括:
若所述数据库查询请求不是初次请求,则在缓存中查询所述数据库查询请求对应的查询结果是否存在;
若存在则直接获取所述查询结果;
若不存在,则等待查询周期后,再次在缓存中查询所述数据库查询请求对应的查询结果是否存在,直至在缓存中查询到所述数据库查询请求对应的查询结果,并获取所述查询结果。
若不存在,则说明该数据库查询请求还正在查询中,还未得到查询结果,则此时为了避免不停的查询,减少浪费,则等待一个查询周期,该查询周期可以是预先设置好的,可以根据经验值评估下一般一个数据库查询请求的执行时间来设置查询周期的具体数值。当然,实际应用中,可以对查询周期进行设置、修改等操作。
进一步的,所述等待查询周期后还包括:
判断当前距离初次接收到所述数据库查询请求的时间是否超过存活周期;
若超过存活周期,则在标记的正在查询请求中将所述数据库查询请求删除,并返回超时异常,结束;
若未超过存活周期,则执行所述再次在缓存中查询所述数据库查询请求对应的查询结果是否存在。
也就是说,充分考虑到由于网络连接等原因导致的数据库查询操作失败的情况,本发明实施例还进一步包括,在每次等待查询周期后,判断当前距离初次接收到所述数据库查询请求的时间是否超过存活周期,若超出该存活周期则返回超时异常,并结束当前流程。其中,该存活周期可以是预先设置好的,可以根据经验值评估下一条数据库查询请求的最大执行时间来设置该存活周期的具体数值。当然,实际应用中,可以对存活周期进行设置、修改等操作。即如果出现数据库查询操作失败等情况,对于初次数据库查询操作将不会获得到查询结果,而如果不去对其进行时间监控,则会导致死循环,不停的等待下去,本发明实施例通过存活周期能够有效避免该情况的出现。如果超出存活周期还未得到查询结果,则认为本次查询出现了错误,查询未成功,则停掉当前查询操作,避免死循环。
进一步的,本发明实施例所述将查询结果存入缓存,且与所述数据库查询请求相对应之后还包括:
监控所述查询结果的存储时间是否超过缓存占用周期;在所述查询结果的存储时间超过缓存占用周期时,在缓存中删除所述查询结果。
通常而言,针对初次数据库查询请求查询数据库得到查询结果的过程中,再次接收到的相同的数据库查询请求,在缓存中获取查询结果并非是查询结果一得到就能马上获取到,而是由于系统网络等方面原因,查询数据库得到查询结果的过程中,再次接收到的相同的数据库查询请求获取缓存中查询结果通常都会有时延,因此,需要设置一个缓存占用周期,便于非初次数据库查询请求获取查询结果。同时也考虑到减少缓存占用,缓存占用周期也是为了将过期的查询结果清除,以便存储其它的查询结果。
参见图2所示,本发明实施例提供的数据库查询方法的示意:
其中,由URL请求发起SQL请求查询数据库。数据库查询结果集有两种消费:直接使用或者存储在Ehcache缓存中。Ehcache缓存会将SQL和结果集一对一的存储起来便于获取。Ehcache缓存存储结果集是有时限的。结果集会在具体应用中消费掉。
本发明实施例提供一种数据库查询方法,接收数据库查询请求;判断所述数据库查询请求是否为初次请求;若所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中;若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果。可见,相同的SQL在同时请求数据库时,只请求一次并返回结果,其它的请求获取这个请求的结果,即在一定条件下,一段时间内查询SQL语句只有第一次生效,其余的则等待查询的结果。将多次SQL请求压缩成一次,能够减轻数据库的负担,从而解决多次数据库请求造成数据库拥堵的技术问题,并且进一步提高了SQL查询返回结果集的速度,后续的请求使用的是第一次请求的结果集,大大缩短了查询时间。
参见图3,为本发明实施例中数据库查询的一种具体实现方法。
1.判断是否有想用的SQL语句正在查询(亦即是否是第一次查询)。
2.当没有相同的SQL语句被查询时,直接查询数据库,查询到结果集后直接消费并且将结果集存放在Ehcache缓存中,然后结束。
3.当有相同的SQL语句被查询时,循环等待Ehcache缓存生成的结果集,当获取到结果集后结束等待;当等待时间超长时,返回超时异常并结束。
例如:有一个页面里的SQL查询时间为5s,当用户在这5秒钟内连续刷新页面。那么,第一次SQL会直接查询数据库并在5秒后返回结果集并存如缓存;之后的SQL都会等待第一次的结果集,当第一次的SQL结果集放入缓存后,等待的SQL从缓存中取出结果集并结束等待。另外,如果第一次SQL查询未返回结果集,之后的SQL等待不到结果集会返回超时异常。
参见图4,本发明实施例提供一种数据库查询系统,所述系统包括:
请求接收模块401,用于接收数据库查询请求。
判断模块402,用于判断所述数据库查询请求是否为初次请求。
初次请求执行模块403,用于若所述判断模块的判断结果是所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中。
再次请求执行模块404,用于若所述判断模块的判断结果是若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果。
其中,所述判断模块包括:
检索单元,用于检索标记正在查询请求中是否有与所述数据库查询请求相同的查询请求;
第一确定单元,用于若有则确定所述数据库查询请求不是初次请求;
第二确定单元,用于若没有则确定所述数据库查询请求是初次请求,并将所述数据库查询请求标记为正在查询请求。
优选的,所述初次请求执行模块包括:
查询操作单元,用于若所述数据库查询请求是初次请求,则执行对应的数据库查询操作;
缓存单元,用于将查询结果存入缓存,且与所述数据库查询请求相对应;
第一删除单元,用于在标记的正在查询请求中将所述数据库查询请求删除。
进一步的,所述再次请求执行模块包括:
查询单元,用于若所述数据库查询请求不是初次请求,则在缓存中查询所述数据库查询请求对应的查询结果是否存在;
第一结果获取单元,用于若所述查询单元的查询结果是存在则直接获取所述查询结果;
第二结果获取单元,用于若所述查询单元的查询结果是不存在,则等待查询周期后,再次在缓存中查询所述数据库查询请求对应的查询结果是否存在,直至在缓存中查询到所述数据库查询请求对应的查询结果,并获取所述查询结果。
优选的,所述第二结果获取单元包括:
存活周期判断子单元,用于若所述查询单元的查询结果是不存在,则等待查询周期后,判断当前距离初次接收到所述数据库查询请求的时间是否超过存活周期;
第一判断子单元,用于若所述存活周期判断子单元的判断结果为超过存活周期,则在标记的正在查询请求中将所述数据库查询请求删除,并返回超时异常,结束;
第二判断子单元,用于若所述存活周期判断子单元的判断结果为未超过存活周期,则再次在缓存中查询所述数据库查询请求对应的查询结果是否存在,直至在缓存中查询到所述数据库查询请求对应的查询结果,并获取所述查询结果。
所述初次请求执行模块还包括:
第二删除单元,用于所述缓存单元将查询结果存入缓存后,监控所述查询结果的存储时间是否超过缓存占用周期;在所述查询结果的存储时间超过缓存占用周期时,在缓存中删除所述查询结果。
需要说明的是,本发明系统实施例中的各个模块或者单元的工作原理和处理过程可以参见上述图1-图3所示方法实施例中的相关描述,此处不再赘述。
本发明实施例提供一种数据库查询系统,接收数据库查询请求;判断所述数据库查询请求是否为初次请求;若所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中;若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果。可见,相同的SQL在同时请求数据库时,只请求一次并返回结果,其它的请求获取这个请求的结果,即在一定条件下,一段时间内查询SQL语句只有第一次生效,其余的则等待查询的结果。将多次SQL请求压缩成一次,能够减轻数据库的负担,从而解决多次数据库请求造成数据库拥堵的技术问题,并且进一步提高了SQL查询返回结果集的速度,后续的请求使用的是第一次请求的结果集,大大缩短了查询时间。
为了便于清楚描述本发明实施例的技术方案,在发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤:(方法的步骤),所述的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种数据库查询方法,其特征在于,所述方法包括:
接收数据库查询请求;
判断所述数据库查询请求是否为初次请求;
若所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中;
若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果。
2.根据权利要求1所述的数据库查询方法,其特征在于,所述判断所述数据库查询请求是否为初次请求包括:
检索标记正在查询请求中是否有与所述数据库查询请求相同的查询请求;
若有则确定所述数据库查询请求不是初次请求;
若没有则确定所述数据库查询请求是初次请求,并将所述数据库查询请求标记为正在查询请求。
3.根据权利要求2所述的数据库查询方法,其特征在于,所述若所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中包括:
若所述数据库查询请求是初次请求,则执行对应的数据库查询操作;
将查询结果存入缓存,且与所述数据库查询请求相对应;
在标记的正在查询请求中将所述数据库查询请求删除。
4.根据权利要求3所述的数据库查询方法,其特征在于,所述若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果包括:
若所述数据库查询请求不是初次请求,则在缓存中查询所述数据库查询请求对应的查询结果是否存在;
若存在则直接获取所述查询结果;
若不存在,则等待查询周期后,再次在缓存中查询所述数据库查询请求对应的查询结果是否存在,直至在缓存中查询到所述数据库查询请求对应的查询结果,并获取所述查询结果。
5.根据权利要求4所述的数据库查询方法,其特征在于,所述等待查询周期后还包括:
判断当前距离初次接收到所述数据库查询请求的时间是否超过存活周期;
若超过存活周期,则在标记的正在查询请求中将所述数据库查询请求删除,并返回超时异常,结束;
若未超过存活周期,则执行所述再次在缓存中查询所述数据库查询请求对应的查询结果是否存在。
6.根据权利要求3所述的数据库查询方法,其特征在于,所述将查询结果存入缓存,且与所述数据库查询请求相对应之后还包括:
监控所述查询结果的存储时间是否超过缓存占用周期;在所述查询结果的存储时间超过缓存占用周期时,在缓存中删除所述查询结果。
7.一种数据库查询系统,其特征在于,所述系统包括:
请求接收模块,用于接收数据库查询请求;
判断模块,用于判断所述数据库查询请求是否为初次请求;
初次请求执行模块,用于若所述判断模块的判断结果是所述数据库查询请求是初次请求,则执行对应的数据库查询操作,并将查询结果存入缓存中;
再次请求执行模块,用于若所述判断模块的判断结果是若所述数据库查询请求不是初次请求,则在所述缓存中获取所述数据库查询请求的查询结果。
8.根据权利要求7所述的数据库查询系统,其特征在于,所述判断模块包括:
检索单元,用于检索标记正在查询请求中是否有与所述数据库查询请求相同的查询请求;
第一确定单元,用于若有则确定所述数据库查询请求不是初次请求;
第二确定单元,用于若没有则确定所述数据库查询请求是初次请求,并将所述数据库查询请求标记为正在查询请求。
9.根据权利要求8所述的数据库查询系统,其特征在于,所述初次请求执行模块包括:
查询操作单元,用于若所述数据库查询请求是初次请求,则执行对应的数据库查询操作;
缓存单元,用于将查询结果存入缓存,且与所述数据库查询请求相对应;
第一删除单元,用于在标记的正在查询请求中将所述数据库查询请求删除。
10.根据权利要求9所述的数据库查询系统,其特征在于,所述再次请求执行模块包括:
查询单元,用于若所述数据库查询请求不是初次请求,则在缓存中查询所述数据库查询请求对应的查询结果是否存在;
第一结果获取单元,用于若所述查询单元的查询结果是存在则直接获取所述查询结果;
第二结果获取单元,用于若所述查询单元的查询结果是不存在,则等待查询周期后,再次在缓存中查询所述数据库查询请求对应的查询结果是否存在,直至在缓存中查询到所述数据库查询请求对应的查询结果,并获取所述查询结果;
所述第二结果获取单元包括:
存活周期判断子单元,用于若所述查询单元的查询结果是不存在,则等待查询周期后,判断当前距离初次接收到所述数据库查询请求的时间是否超过存活周期;
第一判断子单元,用于若所述存活周期判断子单元的判断结果为超过存活周期,则在标记的正在查询请求中将所述数据库查询请求删除,并返回超时异常,结束;
第二判断子单元,用于若所述存活周期判断子单元的判断结果为未超过存活周期,则再次在缓存中查询所述数据库查询请求对应的查询结果是否存在,直至在缓存中查询到所述数据库查询请求对应的查询结果,并获取所述查询结果;
所述初次请求执行模块还包括:
第二删除单元,用于所述缓存单元将查询结果存入缓存后,监控所述查询结果的存储时间是否超过缓存占用周期;在所述查询结果的存储时间超过缓存占用周期时,在缓存中删除所述查询结果。
CN201410332414.4A 2014-07-11 2014-07-11 一种数据库查询方法及系统 Pending CN105243072A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410332414.4A CN105243072A (zh) 2014-07-11 2014-07-11 一种数据库查询方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410332414.4A CN105243072A (zh) 2014-07-11 2014-07-11 一种数据库查询方法及系统

Publications (1)

Publication Number Publication Date
CN105243072A true CN105243072A (zh) 2016-01-13

Family

ID=55040723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410332414.4A Pending CN105243072A (zh) 2014-07-11 2014-07-11 一种数据库查询方法及系统

Country Status (1)

Country Link
CN (1) CN105243072A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106202201A (zh) * 2016-06-25 2016-12-07 杭州草木信息科技有限公司 基于社交网络的数据采集并自动排版成册的方法
CN106294826A (zh) * 2016-08-17 2017-01-04 北京北信源软件股份有限公司 一种集群数据实时查询方法及系统
CN106776875A (zh) * 2016-11-29 2017-05-31 天脉聚源(北京)传媒科技有限公司 一种请求处理方法及装置
CN107203613A (zh) * 2017-05-23 2017-09-26 北京微影时代科技有限公司 一种高并发请求处理的方法及装置
CN107317855A (zh) * 2017-06-21 2017-11-03 努比亚技术有限公司 一种数据缓存方法、数据请求方法及服务器
CN107798048A (zh) * 2017-07-28 2018-03-13 昆明理工大学 一种用于射电日像仪海量数据管理的负数据库管理方法
CN108170771A (zh) * 2017-12-26 2018-06-15 福建星瑞格软件有限公司 一种数据库高耗时查询的自动取消方法
CN108733697A (zh) * 2017-04-19 2018-11-02 北京京东尚科信息技术有限公司 执行数据查询的方法和装置
CN109857760A (zh) * 2018-12-22 2019-06-07 中国平安人寿保险股份有限公司 快速响应检索方法及装置、计算机装置及存储介质
CN110535966A (zh) * 2019-09-05 2019-12-03 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
CN112527826A (zh) * 2019-09-19 2021-03-19 北京京东振世信息技术有限公司 处理请求的方法和装置
CN112559570A (zh) * 2020-12-16 2021-03-26 中国平安财产保险股份有限公司 缓存数据获取方法、装置、设备及存储介质
CN113704290A (zh) * 2021-09-02 2021-11-26 宏桥高科技集团有限公司 一种数据查询系统及方法
CN115361448A (zh) * 2022-10-19 2022-11-18 北京挪拉斯坦特芬通信设备有限公司 数据处理方法、hss、电子设备及计算机存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101482820A (zh) * 2009-02-13 2009-07-15 山东浪潮齐鲁软件产业股份有限公司 一种防止页面重复提交的方法
US20100114868A1 (en) * 2008-10-21 2010-05-06 International Business Machines Corporation Query execution plan efficiency in a database management system
CN102542034A (zh) * 2011-12-23 2012-07-04 北京人大金仓信息技术股份有限公司 一种数据库接口的结果集缓存方法
CN103336849A (zh) * 2013-07-24 2013-10-02 昆明理工大学 一种数据库检索系统中提高检索速度的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100114868A1 (en) * 2008-10-21 2010-05-06 International Business Machines Corporation Query execution plan efficiency in a database management system
CN101482820A (zh) * 2009-02-13 2009-07-15 山东浪潮齐鲁软件产业股份有限公司 一种防止页面重复提交的方法
CN102542034A (zh) * 2011-12-23 2012-07-04 北京人大金仓信息技术股份有限公司 一种数据库接口的结果集缓存方法
CN103336849A (zh) * 2013-07-24 2013-10-02 昆明理工大学 一种数据库检索系统中提高检索速度的方法及装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106202201A (zh) * 2016-06-25 2016-12-07 杭州草木信息科技有限公司 基于社交网络的数据采集并自动排版成册的方法
CN106294826B (zh) * 2016-08-17 2019-06-21 北京北信源软件股份有限公司 一种集群数据实时查询方法及系统
CN106294826A (zh) * 2016-08-17 2017-01-04 北京北信源软件股份有限公司 一种集群数据实时查询方法及系统
CN106776875A (zh) * 2016-11-29 2017-05-31 天脉聚源(北京)传媒科技有限公司 一种请求处理方法及装置
CN108733697A (zh) * 2017-04-19 2018-11-02 北京京东尚科信息技术有限公司 执行数据查询的方法和装置
CN107203613A (zh) * 2017-05-23 2017-09-26 北京微影时代科技有限公司 一种高并发请求处理的方法及装置
CN107317855A (zh) * 2017-06-21 2017-11-03 努比亚技术有限公司 一种数据缓存方法、数据请求方法及服务器
CN107798048A (zh) * 2017-07-28 2018-03-13 昆明理工大学 一种用于射电日像仪海量数据管理的负数据库管理方法
CN108170771A (zh) * 2017-12-26 2018-06-15 福建星瑞格软件有限公司 一种数据库高耗时查询的自动取消方法
CN109857760A (zh) * 2018-12-22 2019-06-07 中国平安人寿保险股份有限公司 快速响应检索方法及装置、计算机装置及存储介质
CN110535966A (zh) * 2019-09-05 2019-12-03 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
CN110535966B (zh) * 2019-09-05 2021-06-15 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
CN112527826A (zh) * 2019-09-19 2021-03-19 北京京东振世信息技术有限公司 处理请求的方法和装置
CN112559570A (zh) * 2020-12-16 2021-03-26 中国平安财产保险股份有限公司 缓存数据获取方法、装置、设备及存储介质
CN112559570B (zh) * 2020-12-16 2024-05-10 中国平安财产保险股份有限公司 缓存数据获取方法、装置、设备及存储介质
CN113704290A (zh) * 2021-09-02 2021-11-26 宏桥高科技集团有限公司 一种数据查询系统及方法
CN115361448A (zh) * 2022-10-19 2022-11-18 北京挪拉斯坦特芬通信设备有限公司 数据处理方法、hss、电子设备及计算机存储介质

Similar Documents

Publication Publication Date Title
CN105243072A (zh) 一种数据库查询方法及系统
CN107463635B (zh) 一种图片数据查询的方法和分布式NewSQL数据库系统
US9361342B2 (en) Query to streaming data
CN109271435B (zh) 一种支持断点续传的数据抽取方法及系统
CN108694075B (zh) 处理报表数据的方法、装置、电子设备和可读存储介质
WO2017063520A1 (zh) 数据库的操作方法及装置
CN107168977B (zh) 一种数据查询的优化方法及装置
CN104123340A (zh) 一种数据库分表分页查询方法及系统
CN109299157B (zh) 一种分布式大单表的数据导出方法及装置
WO2015030767A1 (en) Queries involving multiple databases and execution engines
WO2017005094A1 (zh) 一种数据查询方法和装置
CN101093454A (zh) 一种在分布式系统中执行sql脚本文件的方法和装置
CN107767264A (zh) 联机交易系统热点账户交易流量压力实时调控方法及装置
US9170837B2 (en) Transaction concurrent execution control system, method and program for carrying out a control of concurrently executing a transaction, including measuring execution time from starting to ending of transaction execution
CN105512188A (zh) 数据连接方法和数据连接系统
CN111241059A (zh) 一种基于数据库的数据库优化方法及装置
CN107798111B (zh) 一种分布式环境中大批量导出数据的方法
CN110069565B (zh) 一种分布式数据库数据批量处理的方法及装置
CN102855297B (zh) 一种控制数据传输的方法和连接器
CN112434037A (zh) 数据处理方法、处理装置、数据处理设备和存储介质
CN108153874B (zh) 一种大数据高耗时查询结果集的快速分页方法
CN115858668A (zh) 分布式事务处理方法、装置、电子装置及存储介质
CN106339385B (zh) 抓取网页的系统、网页抓取节点分配方法、抓取网页的方法
CN110851421B (zh) 减少数据迁移耗时的方法、装置、存储介质及电子设备
TWI694393B (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: 20160113

RJ01 Rejection of invention patent application after publication