CN115587119A - 一种数据库查询方法、装置、电子设备及存储介质 - Google Patents

一种数据库查询方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115587119A
CN115587119A CN202211211643.1A CN202211211643A CN115587119A CN 115587119 A CN115587119 A CN 115587119A CN 202211211643 A CN202211211643 A CN 202211211643A CN 115587119 A CN115587119 A CN 115587119A
Authority
CN
China
Prior art keywords
database
connection
server
target
database query
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
CN202211211643.1A
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 Feixun Digital Technology Co ltd
Original Assignee
Beijing Feixun Digital Technology 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 Feixun Digital Technology Co ltd filed Critical Beijing Feixun Digital Technology Co ltd
Priority to CN202211211643.1A priority Critical patent/CN115587119A/zh
Publication of CN115587119A publication Critical patent/CN115587119A/zh
Pending legal-status Critical Current

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据库查询方法、装置、电子设备及存储介质。数据库查询方法具体可以包括:获取数据库客户端发送的数据库查询请求;根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接;根据所述空闲连接,连接所述目标服务器连接池对应的目标数据库服务器;将所述数据库查询请求通过所述空闲连接发送至所述目标数据库服务器,以通过所述目标数据库服务器对所述数据库查询请求进行数据库查询。本发明实施例的技术方案能够减少数据库查询的响应时间,提高数据库查询的响应速率。

Description

一种数据库查询方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及数据库技术领域,尤其涉及一种数据库查询方法、装置、电子设备及存储介质。
背景技术
在现有的数据库客户端/服务器配置中,一个或多个数据库客户端可以通过网络向后端数据库服务器进行查询。数据库服务器执行查询并将结果返回给请求它们的客户端。当数据库客户端需要访问来自数据库服务器的数据时,会创建数据库连接以让数据库客户端查询数据库服务器以获得响应数据。当请求连接时,必须首先定位数据库服务器,建立通信模式,然后交换信息。
然而在许多数据库客户端/服务器应用中,数据库客户端在断开连接之前可能只通过与数据库服务器的连接进行一次或几次查询。因此,在数据库服务器上进行多次数据库查询时,需要数据库客户端重复多次建立与数据库服务器的连接。但是由于数据库服务器在创建数据库连接时响应时间较长,导致数据库查询的响应速率较低。
发明内容
本发明实施例提供一种数据库查询方法、装置、电子设备及存储介质,能够减少数据库查询的响应时间,提高数据库查询的响应速率。
根据本发明的一方面,提供了一种数据库查询方法,包括:
获取数据库客户端发送的数据库查询请求;
根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接;
根据所述空闲连接,连接所述目标服务器连接池对应的目标数据库服务器;
将所述数据库查询请求通过所述空闲连接发送至所述目标数据库服务器,以通过所述目标数据库服务器对所述数据库查询请求进行数据库查询。
根据本发明的另一方面,提供了一种数据库查询装置,包括:
数据库查询请求获取模块,用于获取数据库客户端发送的数据库查询请求;
空闲连接确定模块,用于根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接;
服务器连接模块,用于根据所述空闲连接,连接所述目标服务器连接池对应的目标数据库服务器;
数据库查询模块,用于将所述数据库查询请求通过所述空闲连接发送至所述目标数据库服务器,以通过所述目标数据库服务器对所述数据库查询请求进行数据库查询。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据库查询方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据库查询方法。
本发明实施例的技术方案,通过获取数据库客户端发送的数据库查询请求,并根据数据库查询请求确定与数据库查询请求对应的目标服务器连接池中的空闲连接,以根据空闲连接,连接目标服务器连接池对应的目标数据库服务器,将数据库查询请求通过空闲连接发送至目标数据库服务器,从而通过目标数据库服务器对数据库查询请求进行数据库查询。上述技术方案,通过目标服务器连接池中的空闲连接,连接目标数据库服务器,能够避免在数据库查询时重复建立与数据库服务器之间的连接,从而减少与数据库服务器连接的响应时间,由此减少了数据库查询的响应时间,提高了数据库查询的响应速率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种数据库查询方法的流程图;
图2是本发明实施例二提供的一种数据库查询方法的流程图;
图3是本发明实施例三提供的一种数据库查询方法的流程图;
图4是本发明实施例四提供的一种数据库查询方法的流程图;
图5是本发明实施例五提供的一种数据库网络体系的结构示意图;
图6是本发明实施例五提供的一种数据库加速器的系统框架示意图;
图7是本发明实施例六提供的一种数据库查询装置的示意图;
图8是实现本发明实施例的数据库查询方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是本发明实施例一提供的一种数据库查询方法的流程图,本实施例可适用于能够减少数据库查询的响应时间,提高数据库查询的响应速率的情况,该方法可以由数据库查询装置执行,该装置可以通过软件和/或硬件的方式实现,并一般可以直接集成在执行本方法的电子设备中,该电子设备可以是终端设备,也可以是服务器设备,本发明实施例并不对执行数据库查询方法的电子设备的类型进行限定。具体的,如图1所示,该数据库查询方法具体可以包括如下步骤:
S110、获取数据库客户端发送的数据库查询请求。
其中,数据库客户端可以是任意向数据库服务器发起数据库查询的客户端。示例性的,数据库客户端可以是Web(World Wide Web,全球广域网)服务器,也可以是应用服务器,或者还可以是Web服务器和应用服务器的混合,本发明实施例对此并不进行限制。数据库查询请求可以是数据库客户端向数据库服务器发送的任意的查询数据库的请求。
在本发明实施例中,获取数据库客户端发送的数据库查询请求。可以理解的是,可以通过网络端口获取数据库客户端发送的数据库查询请求。
S120、根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接。
其中,目标服务器连接池可以是与数据库查询请求对应的数据库服务器所匹配的连接池。可以理解的是,连接池可以是一组连接组成的池。每个数据库服务器都有一个与其对应的连接池。空闲连接可以是当前没有被使用的、能够连接数据库服务器的连接。
在本发明实施例中,在获取数据库客户端发送的数据库查询请求之后,可以进一步根据数据库查询请求确定与数据库查询请求对应的目标服务器连接池中的空闲连接。可以理解的是,可以在与数据库查询请求对应的数据库服务器中对数据库查询请求进行数据库查询。
S130、根据所述空闲连接,连接所述目标服务器连接池对应的目标数据库服务器。
其中,目标数据库服务器可以是与数据库查询请求对应的数据库服务器。可以理解的是,可以在目标数据库服务器中对数据库查询请求进行数据库查询,也即在对数据库查询请求进行数据库查询时,所查询的数据库服务器即为目标数据库服务器。
在本发明实施例中,在根据数据库查询请求确定与数据库查询请求对应的目标服务器连接池中的空闲连接之后,可以根据空闲连接,连接目标服务器连接池对应的目标数据库服务器。
上述技术方案,通过目标服务器连接池中的空闲连接,连接目标数据库服务器,能够避免在数据库查询时重复建立与数据库服务器之间的连接,从而减少与数据库服务器连接的响应时间,由此减少了数据库查询的响应时间,提高了数据库查询的响应速率。
S140、将所述数据库查询请求通过所述空闲连接发送至所述目标数据库服务器,以通过所述目标数据库服务器对所述数据库查询请求进行数据库查询。
在本发明实施例中,在根据空闲连接,连接目标服务器连接池对应的目标数据库服务器之后,可以进一步将数据库查询请求通过空闲连接发送至目标数据库,以通过目标数据库服务器对数据库查询请求进行数据库查询,从而在目标数据库服务器查询到响应数据之后获取目标数据库服务器反馈的响应数据,并将响应数据发送至数据库客户端。
本实施例的技术方案,通过获取数据库客户端发送的数据库查询请求,并根据数据库查询请求确定与数据库查询请求对应的目标服务器连接池中的空闲连接,以根据空闲连接,连接目标服务器连接池对应的目标数据库服务器,将数据库查询请求通过空闲连接发送至目标数据库服务器,从而通过目标数据库服务器对数据库查询请求进行数据库查询。上述技术方案,通过目标服务器连接池中的空闲连接,连接目标数据库服务器,能够避免在数据库查询时重复建立与数据库服务器之间的连接,从而减少与数据库服务器连接的响应时间,由此减少了数据库查询的响应时间,提高了数据库查询的响应速率。
实施例二
图2是本发明实施例二提供的一种数据库查询方法的流程图,本实施例是对上述各技术方案的进一步细化,给出了在目标数据库服务器包括多个数据库服务器的应用场景下,根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接的多种具体可选的实现方式。本实施例中的技术方案可以与上述一个或多个实施例中的各个可选方案结合。
本发明实施例中,在目标数据库服务器包括多个数据库服务器的应用场景下,目标数据库服务器可以包括目标主数据库服务器和目标备数据库服务器,目标服务器连接池中可以包括目标主数据库服务器的连接和目标备数据库服务器的连接。可以理解的是,目标备数据库服务器中的数据库可以是目标主数据库服务器中数据库的备份。
具体的,如图2所示,该方法可以包括如下步骤:
S210、获取数据库客户端发送的数据库查询请求。
S220、根据所述数据库查询请求,确定与所述数据库查询请求对应的目标数据库服务器。
S230、根据所述目标数据库服务器,确定与所述目标数据库服务器对应的目标服务器连接池。
在本发明实施例中,在获取数据库客户端发送的数据库查询请求之后,可以进一步根据数据库查询请求确定与数据库查询请求对应的目标数据库服务器,以根据目标数据库服务器确定与目标数据库服务器对应的目标服务器连接池。
具体的,目标数据库服务器可以包括目标主数据库服务器和目标备数据库服务器,目标服务器连接池中可以包括目标主数据库服务器的连接和目标备数据库服务器的连接。
S240、在所述目标主数据库服务器的连接中包括空闲连接的情况下,将所述目标主数据库服务器的连接中的空闲连接,确定为与所述数据库查询请求对应的目标服务器连接池中的空闲连接。
在本发明实施例中,在根据目标数据库服务器确定与目标数据库服务器对应的目标服务器连接池之后,可以进一步确定目标主数据库服务器的连接中是否包括空闲连接,并在目标主数据库服务器的连接中包括空闲连接时,将目标主数据库服务器的连接中的空闲连接,确定为与数据库查询请求对应的目标服务器连接池中的空闲连接。
S250、在所述目标主数据库服务器的连接中不包括空闲连接,且所述目标备数据库服务器的连接包括空闲连接的情况下,将所述目标备数据库服务器的连接中的空闲连接,确定为与所述数据库查询请求对应的目标服务器连接池中的空闲连接。
在本发明实施例中,在根据目标数据库服务器确定与目标数据库服务器对应的目标服务器连接池之后,可以进一步确定目标主数据库服务器的连接中是否包括空闲连接,并在目标主数据库服务器的连接中不包括空闲连接时,确定目标备数据库服务器的连接是否包括空闲连接,以在目标主数据库服务器的连接中不包括空闲连接,且目标备数据库服务器的连接包括空闲连接时,将目标备数据库服务器的连接中的空闲连接,确定为与数据库查询请求对应的目标服务器连接池中的空闲连接。
S260、根据所述空闲连接,连接所述目标服务器连接池对应的目标数据库服务器。
S270、将所述数据库查询请求通过所述空闲连接发送至所述目标数据库服务器,以通过所述目标数据库服务器对所述数据库查询请求进行数据库查询。
本实施例的技术方案,获取数据库客户端发送的数据库查询请求,并确定与数据库查询请求对应的目标数据库服务器,以及确定与目标数据库服务器对应的目标服务器连接池,以在目标主数据库服务器的连接中包括空闲连接时,将目标主数据库服务器的连接中的空闲连接,确定为目标服务器连接池中的空闲连接,并在目标主数据库服务器的连接中不包括空闲连接,且目标备数据库服务器的连接包括空闲连接时,将目标备数据库服务器的连接中的空闲连接,确定为目标服务器连接池中的空闲连接,从而根据空闲连接,连接目标服务器连接池对应的目标数据库服务器,将数据库查询请求通过空闲连接发送至目标数据库服务器,最终通过目标数据库服务器对数据库查询请求进行数据库查询。上述技术方案,在目标数据库服务器包括多个数据库服务器时,通过将目标主数据库服务器的连接中的空闲连接,或目标备数据库服务器的连接中的空闲连接,确定为目标服务器连接池中的空闲连接,能够提高空闲连接的可用性,进而减少数据库查询的响应时间,提高数据库查询的响应速率。
实施例三
图3是本发明实施例三提供的一种数据库查询方法的流程图,本实施例是对上述各技术方案的进一步细化,给出了在获取数据库客户端发送的数据库查询请求之前,以及在确定目标服务器连接池中不包括空闲连接的情况下的多种具体可选的实现方式。本实施例中的技术方案可以与上述一个或多个实施例中的各个可选方案结合。具体的,如图3所示,该方法可以包括如下步骤:
S310、确定当前数据库服务器;其中,所述当前数据库服务器为待预连接的数据库服务器。
具体的,在获取数据库查询请求之前,可以预先建立与数据库服务器之间的连接,以将预先建立的连接存储在连接池中,从而可以将等待预先建立连接的数据库服务器确定为当前数据库服务器。需要说明的是,本发明实施例对确定当前数据库服务器的具体实现方式并不进行限制,只要能够实现当前数据库服务器的确定即可。示例性的,当前数据库服务器可以根据系统需求确定,也可以根据其他方法确定,本发明实施例对此并不进行限制。可以理解的是,任意一个数据库服务器都可以被确定为当前数据库服务器。
S320、向所述当前数据库服务器发送设定数量的第二建立连接请求;其中,所述设定数量小于或等于所述当前数据库服务器的连接数阈值。
其中,第二建立连接请求可以是一个建立与当前数据库服务器之间的连接的请求。连接数阈值可以是连接池中所存储的连接的数量的阈值,例如可以是连接池中最大连接数等,本发明实施例对此并不进行限制。
在本发明实施例中,在确定当前数据库服务器之后,可以进一步向当前数据库服务器发送设定数量的第二建立连接请求。具体的,第二建立连接请求的数量可以小于或等于当前数据库服务器的连接数阈值。可以理解的是,每个数据库服务器对应的连接池都对应一个连接数阈值,连接池中的连接数需要小于或等于连接数阈值,也即与数据库服务器之间的连接的数量需要小于或等于连接数阈值。
S330、获取所述当前数据库服务器根据各所述第二建立连接请求反馈的全部当前新建连接,并将各所述当前新建连接存储至所述当前数据库服务器对应的当前服务器连接池中。
其中,当前新建连接可以是当前新建立的与当前数据库服务器之间的连接。当前服务器连接池可以是当前数据库服务器对应的连接池。
在本发明实施例中,在向当前数据库服务器发送设定数量的第二建立连接请求之后,可以通过当前数据库服务器根据各第二建立连接请求建立相应数量的当前新建连接,以获取当前数据库服务器反馈的全部当前新建连接,从而将各当前新建连接存储至当前数据库服务器对应的当前服务器连接池中。
可选的,在将各当前新建连接存储至当前数据库服务器对应的当前服务器连接池中之后,还可以包括:确定当前服务器连接池中各连接的生存时间;在当前服务器连接池中连接的存储时间,达到生存时间的情况下,断开连接。
具体的,在将各当前新建连接存储至当前数据库服务器对应的当前服务器连接池中之后,可以进一步确定当前服务器连接池中各连接的生存时间,以在当前服务器连接池中连接的存储时间达到生存时间时断开连接。可以理解的是,在向当前数据库服务器发送设定数量的第二建立连接请求时,可以设定各请求对应的连接的生存时间。
S340、获取数据库客户端发送的数据库查询请求。
可选的,数据库查询请求可以是向特定的数据库服务器发送的请求。其中,特定的数据库服务器可以是特定IP(网际互连协议)地址和端口的数据库服务器。具体的,可以通过网络端口获取数据库客户端向特定IP地址和端口的数据库服务器发送的数据库查询请求。
S350、根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接。
S360、根据所述空闲连接,连接所述目标服务器连接池对应的目标数据库服务器。
可选的,数据库客户端发送的数据库查询请求可以是向特定IP地址和端口的数据库服务器发起的数据库查询请求,特定IP地址和端口的数据库服务器也即目标数据库服务器。
S370、将所述数据库查询请求通过所述空闲连接发送至所述目标数据库服务器,以通过所述目标数据库服务器对所述数据库查询请求进行数据库查询。
可选的,数据库查询方法还可以包括:在确定目标服务器连接池中不包括空闲连接的情况下,确定目标服务器连接池中非空闲连接的连接数;在非空闲连接的连接数,未达到目标服务器连接池对应的连接数阈值的情况下,向目标数据库服务器发送第一建立连接请求;获取目标数据库服务器根据第一建立连接请求反馈的目标新建连接,并将目标新建连接存储至目标服务器连接池;通过目标新建连接,连接目标数据库服务器,并将数据库查询请求通过目标新建连接发送至目标数据库服务器,以通过目标数据库服务器对数据库查询请求进行数据库查询。
其中,非空闲连接可以是当前正在使用的连接。第一建立连接请求可以是另一个建立与当前数据库服务器之间的连接的请求。目标新建连接可以是新建立的与目标数据库服务器之间的连接。
具体的,在确定目标服务器连接池中不包括空闲连接时,确定目标服务器连接池中非空闲连接的连接数,并在非空闲连接的连接数未达到目标服务器连接池的连接数阈值时,向目标数据库服务器发送第一建立连接请求,以通过目标数据库服务器根据第一建立连接请求确定目标新建连接,获取目标数据库服务器反馈的目标新建连接,并将目标新建连接存储至目标服务器连接池,从而通过目标新建连接,连接目标数据库服务器并将数据库查询请求发送至目标数据库服务器,进而通过目标数据库服务器对数据库查询请求进行数据库查询。
可选的,在确定目标服务器连接池中非空闲连接的连接数之后,还可以包括:在非空闲连接的连接数,达到目标服务器连接池对应的连接数阈值的情况下,将数据库查询请求放入查询队列,直至目标服务器连接池中包括空闲连接,从查询队列出队与空闲连接对应数量的数据库查询请求,执行根据空闲连接,连接目标服务器连接池对应的目标数据库服务器的操作。
具体的,在确定目标服务器连接池中不包括空闲连接时,确定目标服务器连接池中非空闲连接的连接数,并在非空闲连接的连接数达到目标服务器连接池的连接数阈值时,将数据库查询请求放入查询队列。直到目标服务器连接池中的非空闲连接变为空闲连接,也即目标服务器连接池中包括空闲连接时,获取查询队列中与空闲连接对应数量的数据库查询请求,从而根据空闲连接,连接目标服务器连接池对应的目标数据库服务器。
可选的,查询队列可以是FIFO(First Input First Output,先进先出)查询队列。
本实施例的技术方案,通过确定当前数据库服务器,并向当前数据库服务器发送设定数量的第二建立连接请求,以获取当前数据库服务器根据各第二建立连接请求反馈的全部当前新建连接,从而将各当前新建连接存储至当前数据库服务器对应的当前服务器连接池中,再获取数据库客户端发送的数据库查询请求,并根据数据库查询请求确定与数据库查询请求对应的目标服务器连接池中的空闲连接,以根据空闲连接,连接目标服务器连接池对应的目标数据库服务器,将数据库查询请求通过空闲连接发送至目标数据库服务器,从而通过目标数据库服务器对数据库查询请求进行数据库查询。上述技术方案,通过目标服务器连接池中的空闲连接,连接目标数据库服务器,能够避免在数据库查询时重复建立与数据库服务器之间的连接,从而减少与数据库服务器连接的响应时间,由此减少了数据库查询的响应时间,提高了数据库查询的响应速率。
实施例四
图4是本发明实施例四提供的一种数据库查询方法的流程图,本实施例是对上述各技术方案的进一步细化,给出了根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接的多种具体可选的实现方式。本实施例中的技术方案可以与上述一个或多个实施例中的各个可选方案结合。如图4所示,该方法可以包括如下步骤:
S410、获取数据库客户端发送的数据库查询请求。
可选的,在获取数据库客户端发送的数据库查询请求之前,还可以包括:确定预设缓存规则;其中,预设缓存规则包括服务器标识、数据库查询模式和数据标识;根据服务器标识确定缓存数据库服务器;根据数据库查询模式和数据标识,获取缓存数据库服务器中的目标数据,并将目标数据存储至预设缓存中;确定预设缓存规则的生存时间,并在目标数据在预设缓存中的存储时间达到生存时间的情况下,从预设缓存中删除目标数据。
其中,预设缓存规则可以是预先设定的缓存数据库中数据的规则。服务器标识可以用于唯一标识数据库服务器,例如可以是数据库服务器的IP地址和端口等,本发明实施例对此并不进行限制。数据库查询模式可以是在进行数据库查询时特定的查询模式,例如可以是采用SQL语句进行单个数据库查询,也可以是采用SQL语句进行联合数据库查询等,本发明实施例对此并不进行限制。数据标识可以是数据所在位置的标识。示例性的,数据标识可以是数据所在的数据库的标识,也可以是数据所在的表的标识,或者还可以是数据所在的列的标识等,本发明实施例对此并不进行限制。
其中,在对数据库服务器中的数据进行缓存时,可以将该数据库服务器确定为缓存数据库服务器。目标数据可以是缓存数据库服务器中需要缓存的数据。预设缓存可以是预先设置的缓存,可以用于存储缓存数据库服务器中的目标数据。可以理解的是,预设缓存可以是数据库服务器中的内存,也可以是外部内存等,本发明实施例对此并不进行限制。
具体的,在获取数据库客户端发送的数据库查询请求之前,可以确定预设缓存规则中的服务器标识、数据库查询模式和数据标识,以根据服务器标识确定缓存数据库服务器,并根据数据库查询模式和数据标识获取缓存数据库服务器中的目标数据,从而将目标数据存储至预设缓存中。
具体的,在将目标数据存储至预设缓存中之后,可以进一步确定预设缓存规则的生存时间,并在目标数据在预设缓存中的存储时间达到生存时间时,从预设缓存中删除目标数据。
可选的,可以根据实际需求删除预设缓存中的缓存数据。具体的,可以在任何粒度级别(如键、表、模式或数据库)或数据库客户端集群下,删除预设缓存中的缓存数据。
可选的,预设缓存中的缓存数据可以存储在键值对中。其中,键可以唯一地标识查询,值可以是指向预设缓存中返回数据的指针。为确保在多个数据库客户端发送数据库查询请求时,能够提供不同的数据库和表集而没有数据缓存重叠,键可以映射到查询,也可以映射到包含数据库名称的广泛元数据集,例如表名、请求查询的数据库客户端的凭据或者缓存数据的存储时间,或者还可以是这些组件的散列等,本发明实施例对此并不进行限制。
可选的,在将目标数据存储至预设缓存中之后,还可以包括:在预设定时任务触发时,将预设缓存中的缓存数据存储至持久性存储设备中。
其中,预设定时任务可以是预先设置的定时执行将预设缓存中的缓存数据存储至持久性存储设备中的任务。缓存数据可以是预设缓存中的数据。持久性存储设备可以是能够持久性存储数据的设备。示例性的,持久性存储设备可以是硬盘驱动器,也可以是固态驱动器(如SSD)等,本发明实施例对此并不进行限制。
具体的,在将目标数据存储至预设缓存中之后,可以进一步在预设定时任务触发时,将预设缓存中的缓存数据存储至持久性存储设备中。
可以理解的是,预设缓存可以采用易失性内存(如RAM),当缓存中存在响应数据时,可以立即将响应数据返回给数据库客户端,而无需执行磁盘访问(也即无需连接数据库服务器),从而能够快速的对数据库查询请求的进行响应。但是在缓存崩溃或系统重新启动的情况下,预设缓存中的缓存数据将被清除,从而导致了冷启动问题。然而,在清除缓存数据之后预设缓存中没有缓存数据,在对数据库查询请求时需要连接数据库服务器,这会产生相当大的计算时间成本。因此,可以定期将预设缓存中的缓存数据存储至持久性存储设备中。持久性存储设备不影响内存性能的延迟写入机制。
上述技术方案,通过定期将预设缓存中的缓存数据存储至持久性存储设备中,能够在系统重新启动时读取持久性存储设备中的数据,并将持久性存储设备中的数据重新写入预设缓存中。在接收到数据库查询请求时,预设缓存中已经有缓存数据了,从而能够克服冷启动问题,避免数据库服务器的反复崩溃。需要说明的是,持久性存储设备仅用于在系统重新启动后恢复预设缓存中的缓存数据,而不用于响应数据库查询请求,从而避免影响数据库查询的响应时间。
S420、根据所述数据库查询请求,确定所述数据库查询请求的查询规则。
其中,查询规则可以是在进行数据库查询时所遵循的规则。可以理解的是,数据库客户端在发送数据库查询请求时,可以根据查询规则发送数据库查询请求。
在本发明实施例中,在获取数据库客户端发送的数据库查询请求之后,可以进一步根据数据库查询请求确定数据库查询请求的查询规则。
可选的,查询规则可以包括数据库查询类型和数据库缓存规则。
其中,数据库查询类型可以是在进行数据库查询时的查询类型,例如可以是读取数据库中数据的查询类型,也可以是将数据写入数据库的查询类型等,本发明实施例对此并不进行限制。数据库缓存规则可以是缓存数据库中数据的规则。可以理解的是,在进行数据库查询时,查询的响应数据可以满足数据库缓存规则,以在缓存中查询响应数据,从而减少数据库查询的响应时间,提高数据库查询的响应速率。
具体的,在获取数据库客户端发送的数据库查询请求之后,可以进一步根据数据库查询请求确定数据库查询请求的数据库查询类型和数据库缓存规则。
S430、根据所述查询规则,对所述数据库查询请求进行响应数据的查询;其中,所述查询规则包括数据库查询类型和数据库缓存规则。
其中,响应数据可以是数据库查询请求中所要查询的数据。
在本发明实施例中,在根据数据库查询请求确定数据库查询请求的查询规则之后,可以进一步根据查询规则中的数据库查询类型和数据库缓存规则,对数据库查询请求进行响应数据的查询。可以理解的是,在查询到响应数据之后,可以通过网络端口将响应数据发送至数据库客户端。
可选的,根据查询规则对数据库查询请求进行响应数据的查询,可以包括:在数据库查询类型为数据库读查询的情况下,确定数据库缓存规则是否满足预设缓存规则;若是,在预设缓存中,查询与数据库查询请求匹配的响应数据,其中,预设缓存中包括根据预设缓存规则预先存储的缓存数据;若否,执行S440。
其中,数据库读查询可以是读取数据库中数据的查询。
具体的,在根据数据库查询请求确定数据库查询请求的查询规则之后,可以进一步在数据库查询类型为数据库读查询的情况下,确定数据库缓存规则是否满足预设缓存规则。如果数据库缓存规则满足预设缓存规则,则可以在预设缓存中查询与数据库查询请求匹配的响应数据。如果数据库缓存规则未满足预设缓存规则,则可以根据数据库查询请求,确定与数据库查询请求对应的目标服务器连接池中的空闲连接。可以理解的是,预设缓存中可以包括根据预设缓存规则预先存储的缓存数据。
可选的,在预设缓存中,查询与数据库查询请求匹配的响应数据之后,还可以包括:若在预设缓存中未查询到响应数据,执行S440。
具体的,如果在预设缓存中没有查询到响应数据,则可以根据数据库查询请求,确定与数据库查询请求对应的目标服务器连接池中的空闲连接。
可选的,在通过目标数据库服务器查询与数据库查询请求匹配的响应数据之后,还可以包括:获取目标数据库服务器反馈的响应数据,并将响应数据存储在预设缓存中。
具体的,如果在预设缓存中没有查询到响应数据,在将数据库查询请求发送至目标数据库服务器,以通过目标数据库服务器查询与数据库查询请求匹配的响应数据之后,可以进一步获取目标数据库服务器反馈的响应数据,并将响应数据存储在预设缓存中。可选的,将响应数据与查询键、生存时间和元数据集相关联,以便在预设缓存中用于响应相同的数据库查询请求。
可选的,根据查询规则,对数据库查询请求进行响应数据的查询,可以包括:在数据库查询类型为数据库写查询的情况下,执行S440。
其中,数据库写查询可以是写入数据库中数据的查询。
具体的,在根据数据库查询请求确定数据库查询请求的查询规则之后,可以进一步在数据库查询类型为数据库写查询的情况下,根据数据库查询请求,确定与数据库查询请求对应的目标服务器连接池中的空闲连接。
S440、在根据所述查询规则未查询到响应数据的情况下,根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接。
在本发明实施例中,在根据查询规则对数据库查询请求进行响应数据的查询之后,可以进一步确定根据查询规则是否查询到响应数据,并在根据查询规则未查询到响应数据时,根据数据库查询请求确定与数据库查询请求对应的目标服务器连接池中的空闲连接。
S450、根据所述空闲连接,连接所述目标服务器连接池对应的目标数据库服务器。
S460、将所述数据库查询请求通过所述空闲连接发送至所述目标数据库服务器,以通过所述目标数据库服务器对所述数据库查询请求进行数据库查询。
本实施例的技术方案,获取数据库客户端发送的数据库查询请求,并确定数据库查询请求的查询规则,以根据查询规则对数据库查询请求进行响应数据的查询,从而在根据查询规则未查询到响应数据时,根据数据库查询请求确定与数据库查询请求对应的目标服务器连接池中的空闲连接,进而根据空闲连接,连接目标数据库服务器,并将数据库查询请求通过空闲连接发送至目标数据库服务器,最终通过目标数据库服务器对数据库查询请求进行数据库查询。上述技术方案,通过目标服务器连接池中的空闲连接,连接目标数据库服务器,能够避免在数据库查询时重复建立与数据库服务器之间的连接,从而减少与数据库服务器连接的响应时间,由此减少了数据库查询的响应时间,提高了数据库查询的响应速率。
实施例五
为了使本领域技术人员能够更好的理解本发明实施例的数据库查询方法,下面采用一个具体示例进行说明。
在现有技术中,数据库客户端将数据库查询传输到数据库服务器上的公共IP地址和端口号组合,然后数据库服务器将响应数据传输回发起查询的数据库客户端的IP地址。在数据库查询之前有一个身份验证过程,由数据库客户端向数据库服务器提供身份验证凭据(例如用户名和密码),并且数据库服务器建立一个连接,该连接可以由连接ID进行标识,数据库客户端可以根据该连接ID进行数据库查询。上述技术方案中的数据库服务器通常是单个计算机系统,然而在某些实现中,数据库服务器可以是计算机系统的集群。即使数据库服务器是计算机系统的集群,在数据库客户端看来也是通过单个IP地址和端口号组合到达的单个服务器。
当数据库客户端需要访问来自数据库服务器的数据时,会创建数据库连接以让数据库客户端查询数据库服务器以获得响应数据。当请求连接时,必须首先定位数据库服务器,建立通信模式,然后交换信息。在许多情况下,还需要对连接进行身份验证,这可能涉及在数据库客户端和数据库服务器上进行的大量计算密集型加密计算。在许多数据库客户端/服务器应用中,数据库客户端在断开连接之前可能只通过与数据库服务器的连接进行一次或几次查询。然而对于许多数据密集型数据库客户端,重复建立连接的需求成为瓶颈。
对于更复杂的数据库客户端/数据库服务器,大都支持连接池。通常,数据库客户端根据需要创建从特定数据库客户端到数据库服务器的连接,但在应用程序关闭连接时,仍然可以保持连接处于打开的状态,从而创建了一个连接池。此后,当应用程序需要新连接时,如果连接池中的连接可用,则可以从池中提供连接,否则将创建新连接。如果已经建立到数据库服务器的最大可用连接数,则可以暂停连接请求,直到有连接可用。
但是,对于更多的不太复杂的数据库客户端/数据库服务器并不支持连接池,由此提供此功能是应用程序开发人员的任务。预先编写的软件模块可用于在应用程序中实现连接池,但将它们插入现有的应用程序软件通常需要对应用程序的其他模块进行大量修改。对于不是为支持连接池而构建的应用程序进行修改,可能既昂贵又耗时,并且在某些情况下可能需要对其底层结构进行重大重新设计,从而使其与原始应用程序的未来更新不兼容,而且不支持代码编辑的闭源应用程序甚至无法修改以处理所需的连接池。
图5是本发明实施例五提供的一种数据库网络体系的结构示意图,如图3所示,该数据库系统架构包含数据库客户端、数据库加速器(也即查询缓存系统)和数据库服务器。具体的,该数据库系统是正在执行一个简单的数据库驱动的应用程序,并不是集群,也就是说应用程序将所有查询(无论是读取还是写入)指向单个数据库服务器的单个IP地址和端口组合。然而,对于客户端应用程序而言,单个IP地址和端口组合是数据库加速器的IP地址和端口组合,而不是数据库服务器的IP地址和端口组合。因此,来自客户端的所有数据库查询在数据库加速器处由数据库加速器上的网络端口接收。
在本发明实施例的一个具体示例中,可以通过数据库加速器维护与数据库服务器的连接池。数据库客户端请求连接数据库服务器时,由数据库加速器接收数据库客户端的连接请求,并由数据库加速器接收数据库客户端的数据库查询请求,以通过连接池中的连接转发到数据库服务器。数据库加速器可以为每个数据库服务器单独维护连接池,并在连接池中的连接未达到最大连接数且需要连接数据库服务器时,通过配置到数据库加速器中的用户凭据创建与服务器的新连接。数据库加速器可以维护连接池中每个连接的状态,例如是否可用或当前正在使用,以等待对未完成的数据库查询请求的响应。如果特定查询所需的数据库服务器没有可用的连接,则数据库加速器会形成这样的连接,例如,通过模拟请求连接到所需数据库服务器的数据库客户端。如果已达到数据库服务器的最大连接数,则可以将查询排队,直到连接池中的连接可用。
具体的,如果存在多种类型的数据库服务器(例如只读服务器和读写服务器),则可以为每种服务器类型维护单独的连接池。第二种类型的数据库服务器可以被认为无法从第一种类型的数据库服务器获得查询的备份。示例性的,如果主数据库服务器的连接已经达到最大连接数,则可以从池中为备份数据库服务器提供连接。如果已达到所有数据库服务器的最大连接数,则可以将查询排队,直到连接池中有连接可用。
具体的,数据库加速器还可以维护两个单独的连接池,一个用于只读服务器,一个用于读写服务器。根据查询是读查询还是写查询,数据库加速器可以查找对应的连接池。连接池可以包含有关创建到每个服务器的被动(可用)连接数以及其他元数据的信息。与每个连接关联的主动/被动标志可以表示该连接是由现有查询使用还是空闲。
具体的,连接池中的每个连接都可以具有相关联的TTL(生存时间),在达到生存时间之后,连接不再在连接池中并被终止。
具体的,当数据库加速器接收到要发送到数据库服务器或集群的查询时,数据库加速器会检查连接池中是否存在与所请求的数据库服务器或集群的任何现有被动连接。如果存在,则使用该连接来处理查询。如果连接不存在,则在连接池中的连接未达到最大连接数时,数据库加速器可以请求数据库服务器创建一个连接,该连接作为活动存储在连接池中并用于处理查询。当一个查询处理完成后,加速器在连接池中将正在使用的连接设置为被动连接,而不是永久关闭连接,从而减少将来需要连接时的响应时间。
上述技术方案,通过在数据库加速器中设置连接池,并在连接池中存储足够的数据库服务器的被动连接,能够避免频繁地创建新连接,从而减少数据库服务器在创建数据库连接时的响应时间。
图6是本发明实施例五提供的一种数据库加速器的系统框架示意图,如图6所示,数据库加速器可以包括配置管理器、身份验证管理器、数据库模拟器、查询处理器、连接池、缓存管理器以及集群客户端。
具体的,配置管理器可以允许管理员管理集群的配置和网络设置,在集群配置中可以添加或删除数据库服务器,并指定它们执行的功能及其容量(只读、读写、最大连接数),还可以允许配置其他参数,如用户、身份验证、查询防火墙和缓存管理等。
具体的,身份验证管理器可以包含数据库的用户身份验证信息,它可以用于接受和验证与数据库模拟器的连接,并进一步通过数据库客户端连接到实际的数据库服务器本身。
具体的,数据库模拟器可以允许数据库加速器模拟数据库服务器的连接行为,使连接到加速器的客户端应用程序相信它地连接到数据库服务器本身,而不是一些其他中间设备。
具体的,查询处理器可以接受客户端提供给数据库模拟器的查询,并根据管理员通过配置管理器定义的规则来决定对这些查询做什么。如果查询标识为读取或选择查询,则可以检查缓存以查看该查询的结果数据是否已经可用,如果可用,则将结果返回给数据库模拟器以传递给客户端。如果发现结果不在缓存中,则可以通过连接池将要处理的查询发送到具有读取查询能力的服务器。如果查询标识为写查询,则可以将查询通过连接池发送到具有写查询能力的适当服务器。
具体的,连接池可以维护由数据库客户端创建到集群中的各种数据库服务器的任何服务器连接的列表。连接池允许按到特定服务器的连接数、连接类型(只读或读/写)以及已使用或未使用的连接对该列表进行排序。当达到服务器的最大连接数时,还可以维护一个FIFO查询队列,并且有更多的查询等待处理。当连接可用时,连接池检查队列,并通过集群客户端将任何等待的查询发送到服务器。
具体的,缓存管理器可以维护读取查询的可缓存性的所有规则列表,并且当在数据库上执行此类查询时,可以将其存储在由内存(RAM)哈希映射和持久数据存储组成的缓存存储中,用于在电源故障或崩溃的情况下恢复缓存。内存映射有助于加快缓存响应,持久化数据存储提高了缓存系统的可靠性。高速缓存可以是保持频繁访问的数据随时可用的存储区域,以便系统不必从数据库服务器重复检索。所有高速缓存都可以具有将数据保存在其中以供重复使用的特性,也可以随时删除以为其他数据腾出空间。
具体的,集群客户端可以使用认证管理器提供的认证信息维护与作为集群一部分的数据库服务器的客户端连接。该模块用于在数据库服务器上执行查询,并将数据返回给查询处理器,然后返回给请求处理查询的客户端。集群客户端可以向数据库服务器发送适当的保持活动消息,以防止服务器过早地使连接超时。
具体的,数据库加速器可以实现连接池的功能,并将连接池的功能引入应用程序架构中,除了基本的网络级配置之外,不需要额外的软件或应用程序代码更改,数据库客户端不需要知道数据库加速器的存在。数据库加速器可以体现在传统数据库服务器集群和想要访问它们的应用程序之间的设施中,可以被认为是数据库中间件。数据库加速器还可以采用数据库加速器设备的形式,该数据库加速器设备的一侧设置数据库客户端,另一侧设置数据库服务器集群。数据库客户端发送的数据库查询请求可以通过数据库加速器连接到数据库服务器。
上述技术方案,通过数据库加速器充当用户应用程序(也即数据库客户端)和数据库服务器之间的一层,用户应用程序无需更改其创建数据库连接的方法,也无需在应用程序服务器或数据库服务器或集群上安装任何其他软件,从而能够减少查询的响应时间,还可以控制每个数据库服务器上的最大连接数,同时确保不会因过多的数据库连接或来自客户端系统的查询而导致数据库错误。
实施例六
图7是本发明实施例六提供的一种数据库查询装置的示意图,如图7所示,所述装置包括:数据库查询请求获取模块710、空闲连接确定模块720、服务器连接模块730以及数据库查询模块740,其中:
数据库查询请求获取模块710,用于获取数据库客户端发送的数据库查询请求;
空闲连接确定模块720,用于根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接;
服务器连接模块730,用于根据所述空闲连接,连接所述目标服务器连接池对应的目标数据库服务器;
数据库查询模块740,用于将所述数据库查询请求通过所述空闲连接发送至所述目标数据库服务器,以通过所述目标数据库服务器对所述数据库查询请求进行数据库查询。
本实施例的技术方案,通过获取数据库客户端发送的数据库查询请求,并根据数据库查询请求确定与数据库查询请求对应的目标服务器连接池中的空闲连接,以根据空闲连接,连接目标服务器连接池对应的目标数据库服务器,将数据库查询请求通过空闲连接发送至目标数据库服务器,从而通过目标数据库服务器对数据库查询请求进行数据库查询。上述技术方案,通过目标服务器连接池中的空闲连接,连接目标数据库服务器,能够避免在数据库查询时重复建立与数据库服务器之间的连接,从而减少与数据库服务器连接的响应时间,由此减少了数据库查询的响应时间,提高了数据库查询的响应速率。
可选的,目标数据库服务器可以包括目标主数据库服务器和目标备数据库服务器;目标服务器连接池中可以包括目标主数据库服务器的连接和目标备数据库服务器的连接;相应的,空闲连接确定模块720,可以具体用于:根据数据库查询请求,确定与数据库查询请求对应的目标数据库服务器;根据目标数据库服务器,确定与目标数据库服务器对应的目标服务器连接池;在目标主数据库服务器的连接中包括空闲连接的情况下,将目标主数据库服务器的连接中的空闲连接,确定为与数据库查询请求对应的目标服务器连接池中的空闲连接;在目标主数据库服务器的连接中不包括空闲连接,且目标备数据库服务器的连接包括空闲连接的情况下,将目标备数据库服务器的连接中的空闲连接,确定为与数据库查询请求对应的目标服务器连接池中的空闲连接。
可选的,数据库查询装置可以具体用于:在确定目标服务器连接池中不包括空闲连接的情况下,确定目标服务器连接池中非空闲连接的连接数;在非空闲连接的连接数,未达到目标服务器连接池对应的连接数阈值的情况下,向目标数据库服务器发送第一建立连接请求;获取目标数据库服务器根据第一建立连接请求反馈的目标新建连接,并将目标新建连接存储至目标服务器连接池;通过目标新建连接,连接目标数据库服务器,并将数据库查询请求通过目标新建连接发送至目标数据库服务器,以通过目标数据库服务器对数据库查询请求进行数据库查询。
可选的,数据库查询装置还可以具体用于:在非空闲连接的连接数,达到目标服务器连接池对应的连接数阈值的情况下,将数据库查询请求放入查询队列,直至目标服务器连接池中包括空闲连接,从查询队列出队与空闲连接对应数量的数据库查询请求,执行根据空闲连接,连接目标服务器连接池对应的目标数据库服务器的操作。
可选的,数据库查询请求获取模块710,可以具体用于:确定当前数据库服务器;其中,当前数据库服务器为待预连接的数据库服务器;向当前数据库服务器发送设定数量的第二建立连接请求;其中,设定数量小于或等于当前数据库服务器的连接数阈值;获取当前数据库服务器根据各第二建立连接请求反馈的全部当前新建连接,并将各当前新建连接存储至当前数据库服务器对应的当前服务器连接池中。
可选的,数据库查询请求获取模块710,还可以具体用于:确定当前服务器连接池中各连接的生存时间;在当前服务器连接池中连接的存储时间,达到生存时间的情况下,断开连接。
可选的,空闲连接确定模块720,可以具体用于:根据数据库查询请求,确定数据库查询请求的查询规则;根据查询规则,对数据库查询请求进行响应数据的查询;其中,查询规则包括数据库查询类型和数据库缓存规则;在根据查询规则未查询到响应数据的情况下,根据数据库查询请求,确定与数据库查询请求对应的目标服务器连接池中的空闲连接。
本发明实施例所提供的数据库查询装置可执行本发明任意实施例所提供的数据库查询方法,具备执行方法相应的功能模块和有益效果。
实施例七
图8示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图8所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如数据库查询方法。
在一些实施例中,数据库查询方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM13并由处理器11执行时,可以执行上文描述的数据库查询方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据库查询方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种数据库查询方法,其特征在于,包括:
获取数据库客户端发送的数据库查询请求;
根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接;
根据所述空闲连接,连接所述目标服务器连接池对应的目标数据库服务器;
将所述数据库查询请求通过所述空闲连接发送至所述目标数据库服务器,以通过所述目标数据库服务器对所述数据库查询请求进行数据库查询。
2.根据权利要求1所述的方法,其特征在于,所述目标数据库服务器包括目标主数据库服务器和目标备数据库服务器;
所述目标服务器连接池中包括目标主数据库服务器的连接和目标备数据库服务器的连接;
所述根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接,包括:
根据所述数据库查询请求,确定与所述数据库查询请求对应的目标数据库服务器;
根据所述目标数据库服务器,确定与所述目标数据库服务器对应的目标服务器连接池;
在所述目标主数据库服务器的连接中包括空闲连接的情况下,将所述目标主数据库服务器的连接中的空闲连接,确定为与所述数据库查询请求对应的目标服务器连接池中的空闲连接;
在所述目标主数据库服务器的连接中不包括空闲连接,且所述目标备数据库服务器的连接包括空闲连接的情况下,将所述目标备数据库服务器的连接中的空闲连接,确定为与所述数据库查询请求对应的目标服务器连接池中的空闲连接。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在确定所述目标服务器连接池中不包括空闲连接的情况下,确定所述目标服务器连接池中非空闲连接的连接数;
在所述非空闲连接的连接数,未达到所述目标服务器连接池对应的连接数阈值的情况下,向所述目标数据库服务器发送第一建立连接请求;
获取所述目标数据库服务器根据所述第一建立连接请求反馈的目标新建连接,并将所述目标新建连接存储至所述目标服务器连接池;
通过所述目标新建连接,连接所述目标数据库服务器,并将所述数据库查询请求通过所述目标新建连接发送至所述目标数据库服务器,以通过所述目标数据库服务器对所述数据库查询请求进行数据库查询。
4.根据权利要求3所述的方法,其特征在于,在所述确定所述目标服务器连接池中非空闲连接的连接数之后,还包括:
在所述非空闲连接的连接数,达到所述目标服务器连接池对应的连接数阈值的情况下,将所述数据库查询请求放入查询队列,直至所述目标服务器连接池中包括空闲连接,从所述查询队列出队与所述空闲连接对应数量的数据库查询请求,执行根据所述空闲连接,连接所述目标服务器连接池对应的目标数据库服务器的操作。
5.根据权利要求1或2所述的方法,其特征在于,在所述获取数据库客户端发送的数据库查询请求之前,还包括:
确定当前数据库服务器;其中,所述当前数据库服务器为待预连接的数据库服务器;
向所述当前数据库服务器发送设定数量的第二建立连接请求;其中,所述设定数量小于或等于所述当前数据库服务器的连接数阈值;
获取所述当前数据库服务器根据各所述第二建立连接请求反馈的全部当前新建连接,并将各所述当前新建连接存储至所述当前数据库服务器对应的当前服务器连接池中。
6.根据权利要求5所述的方法,其特征在于,在所述将各所述当前新建连接存储至所述当前数据库服务器对应的当前服务器连接池中之后,还包括:
确定所述当前服务器连接池中各连接的生存时间;
在所述当前服务器连接池中连接的存储时间,达到所述生存时间的情况下,断开所述连接。
7.根据权利要求1或2所述的方法,其特征在于,在所述根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接之前,还包括:
根据所述数据库查询请求,确定所述数据库查询请求的查询规则;
根据所述查询规则,对所述数据库查询请求进行响应数据的查询;
其中,所述查询规则包括数据库查询类型和数据库缓存规则;
所述根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接,包括:
在根据所述查询规则未查询到响应数据的情况下,根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接数据库查询请求数据库查询请求。
8.一种数据库查询装置,其特征在于,包括:
数据库查询请求获取模块,用于获取数据库客户端发送的数据库查询请求;
空闲连接确定模块,用于根据所述数据库查询请求,确定与所述数据库查询请求对应的目标服务器连接池中的空闲连接;
服务器连接模块,用于根据所述空闲连接,连接所述目标服务器连接池对应的目标数据库服务器;
数据库查询模块,用于将所述数据库查询请求通过所述空闲连接发送至所述目标数据库服务器,以通过所述目标数据库服务器对所述数据库查询请求进行数据库查询。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的数据库查询方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的数据库查询方法。
CN202211211643.1A 2022-09-30 2022-09-30 一种数据库查询方法、装置、电子设备及存储介质 Pending CN115587119A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211211643.1A CN115587119A (zh) 2022-09-30 2022-09-30 一种数据库查询方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211211643.1A CN115587119A (zh) 2022-09-30 2022-09-30 一种数据库查询方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115587119A true CN115587119A (zh) 2023-01-10

Family

ID=84778165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211211643.1A Pending CN115587119A (zh) 2022-09-30 2022-09-30 一种数据库查询方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115587119A (zh)

Similar Documents

Publication Publication Date Title
WO2021197432A1 (zh) 一种数据库集群的路由方法和装置
CN110427386B (zh) 数据处理方法、装置及计算机存储介质
CN110737682A (zh) 一种缓存操作方法、装置、存储介质和电子设备
CN113961510B (zh) 一种文件处理方法、装置、设备及存储介质
WO2016169237A1 (zh) 数据处理方法及装置
CN113364877A (zh) 数据处理方法、装置、电子设备和介质
CN115495473A (zh) 数据库查询方法、装置、电子设备和存储介质
CN112148206A (zh) 一种数据读写方法、装置、电子设备及介质
CN110162395B (zh) 一种内存分配的方法及装置
CN113271359A (zh) 刷新缓存数据的方法、装置、电子设备和存储介质
CN116540938A (zh) 数据读取方法、装置、分布式存储系统、设备和存储介质
CN115587119A (zh) 一种数据库查询方法、装置、电子设备及存储介质
US11474846B2 (en) Controller for bridging database architectures
CN113726885A (zh) 一种流量配额的调整方法和装置
CN112988874A (zh) 一种数据处理方法、系统、计算设备及可读存储介质
CN113360689B (zh) 图像检索系统、方法、相关装置及计算机程序产品
CN116126905A (zh) 一种数据库查询方法、装置、电子设备及存储介质
CN114500443B (zh) 消息推送方法、装置、系统、电子设备和存储介质
EP4148577A2 (en) Method and apparatus of responding to client fault detection with update operation, electronic device, and storage medium
CN117596298A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN116301634A (zh) 资源交互状态的检测方法、装置、设备及介质
CN115470224A (zh) 缓存更新方法、装置、设备、系统、存储介质及产品
CN117331944A (zh) 一种数据库表生成方法、装置、设备及存储介质
CN116775684A (zh) 数据处理方法、系统、装置、电子设备及存储介质
CN117493465A (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