CN108170771A - 一种数据库高耗时查询的自动取消方法 - Google Patents
一种数据库高耗时查询的自动取消方法 Download PDFInfo
- Publication number
- CN108170771A CN108170771A CN201711429136.4A CN201711429136A CN108170771A CN 108170771 A CN108170771 A CN 108170771A CN 201711429136 A CN201711429136 A CN 201711429136A CN 108170771 A CN108170771 A CN 108170771A
- Authority
- CN
- China
- Prior art keywords
- request
- server
- inquiry
- database
- 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.)
- Granted
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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (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
本发明提供一种数据库高耗时查询的自动取消方法,前端每次查询都携带有一个全新的唯一的请求ID,服务器接收到查询请求后将请求ID以及相关信息以Key‑Value的形势存入缓存,同时前端使用该请求ID定时发起请求保持跟服务器的连接,服务器接收到请求会持续刷新缓存时间。如果前端被关闭或刷新,则缓存时间不会被更新,数据就会过期,服务器则启动一个新线程取消对应的数据库查询作业,这样可以实现在前端关闭或者刷新的情况下,系统自动取消对应的数据库查询作业,服务器的查询结果无法返回给前端,对于耗时的数据库操作,采用此种自动取消的方法,可以极大的减少数据库压力。
Description
技术领域
本发明涉及数据库的查询方法,特别涉及一种数据库高耗时查询的自动取消方法。
背景技术
有很多关系型数据库查询业务非常耗时,比如查询企业实时报表之类的,一次查询可能需要几分钟甚至更长。在很多时候,前端业务员因为网络原因或者耐心不足,未等到查询结果返回就刷新页面重复查询,或者直接关闭页面不查询。这个时候,刷新或者关闭页面时,之前的查询在数据库中仍然在继续执行,并未被中断。如果用户多次刷新页面,后端数据库就会重复执行多个任务,显然这些情况都会极大的增加数据库的负担。
发明内容
本发明要解决的技术问题,在于提供一种数据库高耗时查询的自动取消方法,实现在前端关闭或者刷新的情况下,系统自动取消对应的数据库查询作业。
本发明是这样实现的:一种数据库高耗时查询的自动取消方法,包括:
步骤S1、前端提交查询数据请求到服务器,请求的信息包括请求的信息以及全新且唯一的请求ID,同时前端使用这个请求ID定时发起请求跟服务器保持通讯;
步骤S2、服务器接收到查询数据请求并去执行数据库查询的时候,将请求ID以及数据库连接对象的相关信息保存到本地缓存中;
步骤S3、前端在等待数据库返回结果的时候,定时使用请求ID跟服务器保持通讯,服务器每接收到前端的请求ID,刷新缓存中跟此请求ID关联的数据库连接对象的相关信息的时间;
步骤S4、在服务器刷新缓存的数据的期间,如果前端页面被关闭或者被刷新时,则之前的那个请求ID不会再跟服务器保持通讯,那么缓存中的数据则会过期,服务器发现过期的连接信息,则会取出数据库连接对象的相关信息,并发起停止数据库查询的命令,取消数据库执行的任务;如果前端页面一直无异常状况发生,则服务器查询结束后,将数据库连接对象的相关信息从缓存中移除。
进一步的,所述步骤S2中,如果服务器是分布式的,则对请求ID进行哈希取模,以保证同一个请求ID的请求都分发到同一台服务器上。
进一步的,所述步骤S2中,服务器将请求ID以及数据库连接对象的相关信息是以Key-Value的形式保存到本地缓存中。
进一步的,所述步骤S4中,服务器发起停止数据库查询的命令是通过启动一个新线程来实现。
本发明具有如下优点:本发明前端每次查询都携带有一个全新的唯一的请求ID,服务器接收到查询请求后将请求ID以及相关信息以Key-Value的形势存入缓存,同时前端使用该请求ID定时发起请求保持跟服务器的连接,后端服务器接收到请求会持续刷新缓存时间,用户关闭页面或者刷新页面的时候,当前的查询请求已经失效,后端服务器查询结果已经无法返回给前端了,对于耗时的数据库操作,采用此种自动取消的方法,可以极大地减少数据库压力。
具体实施方式
本发明的数据库高耗时查询的自动取消方法,包括:
步骤S1、前端提交查询数据请求到服务器,请求的信息包括请求的信息以及全新且唯一的请求ID,一般使用UUID,同时前端使用这个请求ID定时发起请求跟服务器保持通讯,定时发起请求的频率可以根据实际情况配置,比如每隔1秒发起一次;
步骤S2、服务器接收到查询数据请求并去执行数据库查询的时候,将请求ID以及数据库连接对象的相关信息以Key-Value的形式保存到本地缓存中;如果服务器是分布式的,则对请求ID进行哈希取模,以保证同一个请求ID的请求都分发到同一台服务器上;
步骤S3、前端在等待数据库返回结果的时候,定时使用请求ID跟服务器保持通讯,服务器每接收到前端的请求ID,刷新缓存中跟此请求ID关联的数据库连接对象的相关信息的时间;
步骤S4、在服务器刷新缓存的数据的期间,如果前端页面被关闭或者被刷新时,则之前的那个请求ID不会再跟服务器保持通讯,那么缓存中的数据则会过期,服务器发现过期的连接信息,则会取出数据库连接对象的相关信息,并启动一个新线程发起停止数据库查询的命令,取消数据库执行的任务;如果前端页面一直无异常状况发生,则服务器查询结束后,将数据库连接对象的相关信息从缓存中移除。
本发明具有如下优点:本发明前端每次查询都携带有一个全新的唯一的请求ID,服务器接收到查询请求后将请求ID以及相关信息以Key-Value的形势存入缓存,同时前端使用该请求ID定时发起请求保持跟服务器的连接,后端服务器接收到请求会持续刷新缓存时间,用户关闭页面或者刷新页面的时候,当前的查询请求已经失效,后端服务器查询结果已经无法返回给前端了,对于耗时的数据库操作,采用此种自动取消的方法,可以极大地减少数据库压力。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (4)
1.一种数据库高耗时查询的自动取消方法,其特征在于:包括:
步骤S1、前端提交查询数据请求到服务器,请求的信息包括请求的信息以及全新且唯一的请求ID,同时前端使用这个请求ID定时发起请求跟服务器保持通讯;
步骤S2、服务器接收到查询数据请求并去执行数据库查询的时候,将请求ID以及数据库连接对象的相关信息保存到本地缓存中;
步骤S3、前端在等待数据库返回结果的时候,定时使用请求ID跟服务器保持通讯,服务器每接收到前端的请求ID,刷新缓存中跟此请求ID关联的数据库连接对象的相关信息的时间;
步骤S4、在服务器刷新缓存的数据的期间,如果前端页面被关闭或者被刷新时,则之前的那个请求ID不会再跟服务器保持通讯,那么缓存中的数据则会过期,服务器发现过期的连接信息,则会取出数据库连接对象的相关信息,并发起停止数据库查询的命令,取消数据库执行的任务;如果前端页面一直无异常状况发生,则服务器查询结束后,将数据库连接对象的相关信息从缓存中移除。
2.根据权利要求1所述的一种数据库高耗时查询的自动取消方法,其特征在于:所述步骤S2中,如果服务器是分布式的,则对请求ID进行哈希取模,以保证同一个请求ID的请求都分发到同一台服务器上。
3.根据权利要求2所述的一种数据库高耗时查询的自动取消方法,其特征在于:所述步骤S2中,服务器将请求ID以及数据库连接对象的相关信息是以Key-Value的形式保存到本地缓存中。
4.根据权利要求1所述的一种数据库高耗时查询的自动取消方法,其特征在于:所述步骤S4中,服务器发起停止数据库查询的命令是通过启动一个新线程来实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711429136.4A CN108170771B (zh) | 2017-12-26 | 2017-12-26 | 一种数据库高耗时查询的自动取消方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711429136.4A CN108170771B (zh) | 2017-12-26 | 2017-12-26 | 一种数据库高耗时查询的自动取消方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108170771A true CN108170771A (zh) | 2018-06-15 |
CN108170771B CN108170771B (zh) | 2022-04-12 |
Family
ID=62520720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711429136.4A Active CN108170771B (zh) | 2017-12-26 | 2017-12-26 | 一种数据库高耗时查询的自动取消方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170771B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1489353A (zh) * | 2002-07-26 | 2004-04-14 | Lg������ʽ���� | 高速数据通信系统的过载控制方法 |
CN1984084A (zh) * | 2006-04-03 | 2007-06-20 | 华为技术有限公司 | 一种实现信息搜集和交换的系统及方法 |
CN101043388A (zh) * | 2007-03-27 | 2007-09-26 | 杭州华为三康技术有限公司 | 检测Web接入用户终端是否在线的方法、设备和系统 |
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
AU2012201452A1 (en) * | 2011-03-29 | 2012-10-18 | Nelson Irrigation Corporation | Method and apparatus for irrigation system design registration and on-site sprinkler package configuration verification |
CN103544036A (zh) * | 2013-10-23 | 2014-01-29 | 北京荣之联科技股份有限公司 | 页面加载方法、终端及系统 |
CN105243072A (zh) * | 2014-07-11 | 2016-01-13 | 北京神州泰岳软件股份有限公司 | 一种数据库查询方法及系统 |
CN106326489A (zh) * | 2016-09-09 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 网络资源更新的方法和装置 |
-
2017
- 2017-12-26 CN CN201711429136.4A patent/CN108170771B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1489353A (zh) * | 2002-07-26 | 2004-04-14 | Lg������ʽ���� | 高速数据通信系统的过载控制方法 |
CN1984084A (zh) * | 2006-04-03 | 2007-06-20 | 华为技术有限公司 | 一种实现信息搜集和交换的系统及方法 |
CN101043388A (zh) * | 2007-03-27 | 2007-09-26 | 杭州华为三康技术有限公司 | 检测Web接入用户终端是否在线的方法、设备和系统 |
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
AU2012201452A1 (en) * | 2011-03-29 | 2012-10-18 | Nelson Irrigation Corporation | Method and apparatus for irrigation system design registration and on-site sprinkler package configuration verification |
CN103544036A (zh) * | 2013-10-23 | 2014-01-29 | 北京荣之联科技股份有限公司 | 页面加载方法、终端及系统 |
CN105243072A (zh) * | 2014-07-11 | 2016-01-13 | 北京神州泰岳软件股份有限公司 | 一种数据库查询方法及系统 |
CN106326489A (zh) * | 2016-09-09 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 网络资源更新的方法和装置 |
Non-Patent Citations (1)
Title |
---|
沉浸其中: "sqlserver连接池,为什么我的一个页面每刷新一次,数据库连接池就多一个链接数,同个网站下的别的页面", 《HTTPS://BBS.CSDN.NET/TOPICS/390694830》 * |
Also Published As
Publication number | Publication date |
---|---|
CN108170771B (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10810268B2 (en) | High-throughput distributed transaction management for globally consistent sharded OLTP system and method of implementing | |
US8924346B2 (en) | Idempotence for database transactions | |
US8984170B2 (en) | Idempotence for database transactions | |
US8818942B2 (en) | Database system with multiple layer distribution | |
CN107577678A (zh) | 处理数据库事务的方法、客户端和服务器 | |
EP1806668B1 (en) | System and method for managing log information for transaction | |
CN105302840B (zh) | 一种缓存管理方法与设备 | |
WO2021120995A1 (zh) | 数据库的数据同步方法、装置以及存储介质 | |
CN109714443A (zh) | 域名服务器、域名备份方法和计算机可读存储介质 | |
US20070143368A1 (en) | Conflict resolution in highly available network element | |
EP2780832A2 (en) | System and method for highly scalable decentralized and low contention transactional processing x | |
US20200034472A1 (en) | Asynchronous cache coherency for mvcc based database systems | |
US11061889B2 (en) | Systems and methods of managing manifest refresh in a database | |
US10901854B2 (en) | Temporal logical transactions | |
CN109062717B (zh) | 数据缓存及缓存容灾方法和系统、缓存系统 | |
CN108170771A (zh) | 一种数据库高耗时查询的自动取消方法 | |
WO2014048176A1 (zh) | 一种对资源进行同步控制的方法、设备和系统 | |
CN113448976B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
JP2014006635A (ja) | 分散型データベースシステム及びプログラム | |
US11481321B2 (en) | Asynchronous garbage collection in parallel transaction system without locking | |
US10685014B1 (en) | Method of sharing read-only data pages among transactions in a database management system | |
US11159368B2 (en) | Component integration | |
WO2015118662A1 (ja) | 情報処理装置及び方法 | |
CN113778697B (zh) | 一种实现redis分布锁高可用的方法及其系统 | |
US20220004533A1 (en) | Technique for concurrency control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 350000 21 / F, building 5, f District, Fuzhou Software Park, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province Applicant after: FUJIAN SINOREGAL SOFTWARE CO.,LTD. Address before: Floor 20-21, building 5, area F, Fuzhou Software Park, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province 350000 Applicant before: FUJIAN SINOREGAL SOFTWARE CO.,LTD. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |