CN117539949B - 数据库访问请求的处理方法、装置、电子设备和存储介质 - Google Patents

数据库访问请求的处理方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN117539949B
CN117539949B CN202410037079.9A CN202410037079A CN117539949B CN 117539949 B CN117539949 B CN 117539949B CN 202410037079 A CN202410037079 A CN 202410037079A CN 117539949 B CN117539949 B CN 117539949B
Authority
CN
China
Prior art keywords
data
data connection
connection
target
information
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.)
Active
Application number
CN202410037079.9A
Other languages
English (en)
Other versions
CN117539949A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202410037079.9A priority Critical patent/CN117539949B/zh
Publication of CN117539949A publication Critical patent/CN117539949A/zh
Application granted granted Critical
Publication of CN117539949B publication Critical patent/CN117539949B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种数据库访问请求的处理方法、装置、电子设备和存储介质,该方法包括:接收来自目标对象的数据访问请求,获取数据访问请求中包含的对象身份信息、对象变量数据以及目标数据库;根据对象身份信息以及对象变量数据在可用数据连接集合中调用连接目标数据库的目标数据连接;基于目标数据连接向目标数据库发送数据访问请求,并接收目标数据库返回的事务处理状态信息;根据事务处理状态信息对目标数据连接进行复用性验证,得到复用验证结果;当复用验证结果确认目标数据连接可复用时,将目标数据连接重新添加至可用数据连接集合以备其他数据访问请求调用。本公开实施例可以提升数据库访问效率。

Description

数据库访问请求的处理方法、装置、电子设备和存储介质
技术领域
本公开涉及数据库领域,特别是涉及一种数据库访问请求的处理方法、装置、电子设备和存储介质。
背景技术
数据库用于存储大量结构化和非结构化的数据,通过数据库可以实现对这些数据的管理、处理和访问。传统数据库的数据存储量有限,数据处理效率较低,难以适应日益增长的数据量与访问量。为了解决这个问题,目前,越来越多的对象选择利用云数据库进行数据的存储与处理。云数据库可以为多个对象提供数据存储与管理服务,具有良好的可拓展性,可以适应不断增长的数据量与访问量。
然而,相关技术中的云数据库访问效率较低。
发明内容
本公开实施例提供了一种数据库访问请求的处理方法、装置、电子设备和存储介质,该方法可以提升数据库访问效率。
根据本公开的一方面,提供了一种数据库访问请求的处理方法,包括:
接收来自目标对象的数据访问请求,获取所述数据访问请求中包含的对象身份信息、对象变量数据以及目标数据库;
根据所述对象身份信息以及所述对象变量数据在可用数据连接集合中调用目标数据连接,所述可用数据连接集合为连接到所述目标数据库的数据连接构成的集合;
基于所述目标数据连接向所述目标数据库发送所述数据访问请求,并接收所述目标数据库针对所述数据访问请求返回的事务处理状态信息;
根据所述事务处理状态信息对所述目标数据连接进行复用性验证,得到复用验证结果;
当所述复用验证结果确认所述目标数据连接可复用时,将所述目标数据连接重新添加至所述可用数据连接集合中以备其他数据访问请求调用。
根据本公开的一方面,提供了一种数据库访问请求的处理装置,包括:
第一接收单元,用于接收来自目标对象的数据访问请求,获取所述数据访问请求中包含的对象身份信息、对象变量数据以及目标数据库;
调用单元,用于根据所述对象身份信息以及所述对象变量数据在可用数据连接集合中调用目标数据连接,所述可用数据连接集合为连接到所述目标数据库的数据连接构成的集合;
第二接收单元,用于基于所述目标数据连接向所述目标数据库发送所述数据访问请求,并接收所述目标数据库针对所述数据访问请求返回的事务处理状态信息;
验证单元,用于根据所述事务处理状态信息对所述目标数据连接进行复用性验证,得到复用验证结果;
添加单元,用于当所述复用验证结果确认所述目标数据连接可复用时,将所述目标数据连接重新添加至所述可用数据连接集合中以备其他数据访问请求调用。
可选地,所述调用单元具体用于:
当可用数据连接集合是空集时,基于所述对象身份信息以及所述对象变量数据建立用于连接所述目标数据库的目标数据连接;
当可用数据连接集合中包含至少一个数据连接时,根据所述对象身份信息以及所述对象变量数据在所述可用数据连接集合中调用目标数据连接。
可选地,所述调用单元具体用于:
当可用数据连接集合中包含至少一个数据连接,获取每一数据连接的连接标识信息与连接环境变量数据;
根据所述对象身份信息、所述对象变量数据以及所述每一数据连接的连接标识信息与连接环境变量数据在所述可用数据连接集合包含的所述至少一个数据连接中确定目标数据连接;
调用所述目标数据连接。
可选地,所述调用单元具体用于:
根据所述每一数据连接的连接标识信息和连接环境变量数据与所述对象身份信息和所述对象变量数据的比对结果确定所述每一数据连接的连接类别,所述连接类别包括第一类别、第二类别与第三类别,所述第一类别的数据连接的连接标识信息与所述对象身份信息一致且连接环境变量数据与所述对象变量数据一致,所述第二类别的数据连接的连接标识信息与所述对象身份信息一致但连接环境变量数据与所述对象变量数据不一致,所述第三类别的数据连接的连接标识信息与所述对象身份信息不一致且连接环境变量数据与所述对象变量数据不一致;
根据所述每一数据连接的所述连接类别,在所述可用数据连接集合包含的所述至少一个数据连接中确定目标数据连接。
可选地,所述调用单元具体用于:
当所述至少一个数据连接中存在所述第一类别的数据连接,将所述第一类别的数据连接确定为目标数据连接;
当所述至少一个数据连接中不存在所述第一类别的数据连接但存在所述第二类别的数据连接,将所述第二类别的数据连接确定为目标数据连接;
当所述至少一个数据连接中不存在所述第一类别的数据连接且不存在所述第二类别的数据连接,将所述第三类别的数据连接确定为目标数据连接。
可选地,所述调用单元具体用于:
将所述对象变量数据进行哈希处理得到整数型的定长对象变量数据;
将所述每一数据连接的所述连接环境变量数据进行哈希处理得到整数型的定长连接环境变量数据;
根据所述对象身份信息、所述定长对象变量数据以及所述每一数据连接的连接标识信息与所述定长连接环境变量数据在所述可用数据连接集合包含的所述至少一个数据连接中确定目标数据连接。
可选地,所述事务处理状态信息包括事务标识信息与事务状态变化信息;
所述验证单元具体用于:
基于所述事务标识信息与所述事务状态变化信息确定所述目标数据库对所述数据访问请求中事务的事务处理结果;
根据所述事务处理结果确定复用验证结果。
可选地,所述第二接收单元具体用于:
基于所述目标数据连接向所述目标数据库发送所述数据访问请求,并接收所述目标数据库针对所述数据访问请求返回的事务处理状态信息与所述目标数据连接的数据连接状态信息;
所述验证单元具体用于:
根据所述事务处理状态信息与所述数据连接状态信息对所述目标数据连接进行复用性验证,得到复用验证结果。
可选地,所述验证单元具体用于:
从所述数据连接状态信息中获取所述目标数据连接中的事务队列信息与所述目标数据库处理事务过程中产生的待处理变量和语句信息;
根据所述事务处理状态信息、所述事务队列信息与所述待处理变量和语句信息对所述目标数据连接进行复用性验证,得到复用验证结果。
可选地,所述调用单元具体用于:
当可用数据连接集合是空集时,获取除所述目标数据库以外的其他数据库对应的可复用数据连接;
基于所述对象身份信息以及所述对象变量数据将所述可复用数据连接转换为所述目标数据库的目标数据连接。
可选地,所述数据库访问请求的处理装置还包括:
显示单元,用于显示多个数据库对应的数据连接管理界面,所述数据连接管理界面包括可复用数据连接控件与不可复用数据连接控件;
响应单元,用于响应于将目标可复用数据连接控件拖动至所述目标数据库对应的数据连接管理界面的拖动操作,将所述目标可复用数据连接控件对应的数据连接转换为所述目标数据库对应的可复用数据连接,所述目标可复用数据连接控件为所述目标数据库以外的其他数据库对应的数据连接管理界面中的可复用数据连接控件。
根据本公开的一方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的数据库访问请求的处理方法。
根据本公开的一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据库访问请求的处理方法。
根据本公开的一方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器读取并执行,使得该计算机设备执行如上所述的数据库访问请求的处理方法。
本公开实施例中的数据库访问请求的处理方法,接收来自目标对象的数据访问请求,获取数据访问请求中包含的对象身份信息、对象变量数据以及目标数据库;根据对象身份信息以及对象变量数据在可用数据连接集合中调用目标数据连接,可用数据连接集合为连接到目标数据库的数据连接构成的集合;基于目标数据连接向目标数据库发送数据访问请求,并接收目标数据库针对数据访问请求返回的事务处理状态信息;根据事务处理状态信息对目标数据连接进行复用性验证,得到复用验证结果;当复用验证结果确认目标数据连接可复用时,将目标数据连接重新添加至可用数据连接集合中以备其他数据访问请求调用。
以此,本公开实施例的数据库访问请求的处理方法在接收到数据访问请求后,基于数据访问请求中的对象身份信息与对象变量数据从可用连接集合中调用目标数据连接。这样获取到的目标数据连接可以适应数据访问请求所需的处理环境,以便对数据访问请求进行高效处理。目标数据库对数据访问请求中的事务进行处理后,得到事务处理状态信息。只要事务处理状态信息的复用验证结果确认目标数据连接是可复用的,即使目标对象未断开与目标数据库之间的连接,目标数据连接也可以添加到数据连接集合中,以备其它数据访问请求调用。因此,本公开实施例的数据库访问请求的处理方法中,数据连接只要完成对数据库访问请求中事务的处理,就可以供其他数据访问请求使用,提高了数据连接的复用率。数据连接复用率的提高可以为数据访问请求快速提供访问目标数据库的连接,提高了对象访问数据库的访问效率。
本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本公开技术方案的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。
图1是根据本公开的实施例的数据库访问请求的处理方法应用的一个系统构架图;
图2A-图2E是根据本公开的实施例的数据库访问请求的处理方法应用在多个对象进行数据库访问的场景下的示意图;
图3是根据本公开的一个实施例的数据库访问请求的处理方法的流程示意图;
图4是根据本公开的一个实施例的代理端连接多个数据库的一个示意图;
图5是根据本公开的一个实施例的每一数据连接针对多个数据访问请求的连接类别的一个示意图;
图6是根据本公开的一个实施例的代理端中包含请求分配节点和多个请求处理节点的一个示意图;
图7是根据本公开的一个实施例的事务相关信息检测类型的一个示意图;
图8是根据本公开的一个实施例的从数据库返回的事务处理包中获取事务处理状态信息的一个示意图;
图9是根据本公开的一个实施例的事务处理包的一个示例图;
图10是根据本公开的一个实施例的事务队列信息的一个示意图;
图11A-图11C是根据本公开的一个实施例中拖动目标可复用数据连接控件的一个示意图;
图12是根据本公开的一个实施例的数据访问请求的处理方法的另一流程示意图;
图13是根据本公开的一个实施例的数据库访问请求的处理装置的结构示意图;
图14是实施根据本公开的一个实施例的各方法的终端结构图;
图15是实施根据本公开的一个实施例的各方法的服务器结构图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。
对本公开实施例进行进一步详细说明之前,对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释:
云数据库:云数据库是指被优化或部署到一个虚拟计算环境中的数据库,具有按需扩展、高可用性以及存储整合等优势。
session_track_schema变量:数据库中用于检测连接环境变化的变量。当连接的环境发生变化,会将变化返回给代理端,让代理端感知到连接环境的变化。
随着云数据库的发展,云数据库中的实例逐渐增加,数据量也在逐渐扩大,云数据库的访问量也在逐渐增多。对象在访问云数据库之前需要与云数据库建立连接,但是云数据库可建立的连接数目是有限的,无法满足大量对象的访问需求。当连接数达到云数据库可连接的最大数值时,对象在访问云数据库时就会得到报错信息,导致对象的数据库访问效率较低。为了解决这个问题,目前对象可以通过可复用连接访问数据库。当对象通过可复用连接访问数据库结束后,连接不会断开,而是会被存储下来,其它对象想要访问数据库时可以直接调取该连接进行复用。可复用连接可以为不同的对象端提供访问数据库的服务,减少了数据库的连接数。但是目前利用可复用连接处理数据库访问请求存在两个问题。首先,连接是否可以被复用是由对象决定的。即使对象已经结束对数据库的访问,只要对象不主动断开与数据库之间的连接,该连接就无法被复用,这会大大降低可复用连接的复用率。可复用连接的复用率低,对象想要访问数据库仍需要不断地建立新的连接,这样依旧会导致数据库的连接数过大,对象访问被限制,访问效率较低。其次,可复用连接存在多个,但针对不同的数据库访问请求,不是每一个可复用连接都可以达到较高的处理效率。目前,在为对象的数据访问请求调取可复用连接时,往往只考虑连接是否可复用且连接是否空闲,忽略了连接与数据访问请求的适配性,这导致了调取的可复用连接处理数据访问请求时的处理效率较低,进而使对象的数据库访问效率较低。对此,本公开实施例提供了一种数据库访问请求的处理方法,以期可以提高对象的数据库访问效率。
图1是根据本公开的实施例的数据库访问请求的处理方法所应用的一种系统构架图。它包括对象终端110、代理端120与服务器130。
对象终端110是对象用来提出数据库访问请求的设备。它包括桌面电脑、膝上型电脑、PDA(个人数字助理)、手机、车载终端、家庭影院终端、专用终端等多种形式。另外,它可以是单台设备,也可以是多台设备组成的集合。例如,多台设备通过局域网连接,共用一台显示设备进行协同工作,共同构成一个对象终端110。
代理端120是用来建立对象终端110与数据库之间的连接的计算机系统。代理端120可以是网络平台中的一台高性能计算机、多台高性能计算机的集群、一台高性能计算机中划出的一部分(例如虚拟机)、多台高性能计算机中划出的一部分(例如虚拟机)的组合等。
服务器130是用来部署数据库的系统,数据库可以用于存储与管理数据。与代理端120相似,服务器130可以是网络中的一台高性能计算机、多台高性能计算机的集群、一台高性能计算机中划出的一部分(例如虚拟机)、多台高性能计算机中划出的一部分(例如虚拟机)的组合等。
本公开实施例可以应用在多种场景下,如图2A-图2E所示的多个对象进行数据库访问的场景等。
如图2A所示,在对象U1的对象终端110中,对象U1在工作台窗口输入了访问数据库D1的数据访问请求,数据访问请求中可以包含对象U1提出的数据查找事务语句。在对象U1确认数据访问请求后,如图2B所示,工作台窗口显示“正在连接代理端……”。此时正在建立对象与代理端之间的连接。在连接代理端后,将数据访问请求发送给代理端。代理端根据数据访问请求获取数据连接L1,并利用数据连接L1访问数据库D1。如图2C所示,工作台窗口显示“正在通过数据连接L1访问数据库D1……”。数据库D1在针对数据访问请求中的数据查找事务语句进行数据查询后,将查询结果通过数据连接L1发送给代理端。代理端根据事务状态信息确定数据连接L1可复用,因此,将查询结果发送给对象U1的对象终端。如图2D所示,在工作台窗口中显示查询结果,并提示对象U1“数据连接L1已释放”,无需等待对象U1主动断开与数据库D1的连接,数据连接L1就可以变为可复用状态,以备其它数据访问请求调用的调用。
当对象U2也想要访问数据库D1进行数据查找时,可以在对象U2的对象终端110执行与对象U1相同的操作来得到查询结果。由于数据连接L1在处理对象U1的数据访问请求后被释放,处于可用状态。因此代理端可以为对象U2的数据连接请求同样调用数据连接L1。
对象U1与对象U2依次访问数据库D1的过程可以如图2E所示,对象U1向代理端发送数据库D1的数据访问请求后,代理端调用数据连接L1来向数据库D1传输数据访问请求。数据的查询结果也通过数据连接L1由数据库D1发送到代理端。代理端在向对象U1反馈查询结果的同时,判断数据连接L1是否可以复用。如果数据连接L1可以复用,直接释放数据连接L1。此时对象U2向代理端发送数据库D1的数据访问请求,代理端再次调用数据连接L1来向数据库D1传输数据访问请求。在接收到查询结果后,代理端在向对象U2反馈查询结果的同时,如果判断数据连接L1可以复用,就释放数据连接L1。
通过上述过程可以看出,使用本公开实施例的数据库访问请求的处理方法,数据连接L1在处理对象U1的数据访问请求后,只要状态被验证为可复用,就可以立刻被对象U2的数据访问请求调用,不需要等待对象U1的操作。因此,数据库D1通过一个数据连接就可以快速处理来自不同对象的多个数据库访问请求。假设数据库D1最多可以连接N个数据连接,目前N个数据连接可以用于处理N个不同对象的数据库访问请求。即使数据库访问请求处理完成,数据连接空闲,只要对象不断开与数据库D1的连接,数据库D1也无法处理第N+1个对象的数据库访问请求。但利用本公开实施例的数据库访问请求的处理方法之后,每个数据连接都可以快速处理来自不同对象的多个数据访问请求,对象的数据库访问效率大大提高。
根据本公开的一个实施例,提供了一种数据库访问请求的处理方法。该方法可以用于如图2A-图2D所示的多个对象进行数据库访问的场景等。
本公开实施例的数据库访问请求的处理方法可以应用于代理端120,具体地,可以应用于代理端120中的数据访问请求的处理装置中。如图3所示,为本公开提供的数据库访问请求的处理方法的一个流程示意图。该数据库访问请求的处理方法可以包括:
步骤310、接收来自目标对象的数据访问请求,获取数据访问请求中包含的对象身份信息、对象变量数据以及目标数据库。
数据访问请求是指目标对象对目标数据库发起的访问请求。代理端120可以通过与目标对象的对象终端110之间的连接接收来自目标对象的数据访问请求。因此,在一种实施方式中,在接收来自目标对象的数据访问请求之前,数据库访问请求的处理方法还包括:响应于目标对象的数据访问请求,并基于数据访问请求建立与目标对象之间的连接。
在建立与目标对象之间的连接时,可以加入安全性验证协议,以便在进行数据传输时对代理端120与对象终端110的身份进行安全性验证。
利用与目标对象之间的连接接收数据访问请求有利于对数据传输的过程进行检测,提高了数据传输的安全性。
代理端120可能会接收到来自恶意对象的数据访问请求,在对这些恶意对象的数据访问请求进行处理后会威胁代理端120与数据库的数据安全。
因此,在一种实施方式中,数据访问请求是目标对象利用对象公钥进行加密后得到的;接收来自目标对象的数据访问请求,获取数据访问请求中包含的对象身份信息、对象变量数据以及目标数据库,包括:
基于数据访问请求获取目标对象的对象私钥;
利用对象私钥对数据访问请求进行解密,如果解密验证成功,获取数据访问请求中包含的对象身份信息、对象变量数据以及目标数据库。
在这个实施方式中,对象公钥与对象私钥可以是对象在代理端120进行注册时,由代理端120成对颁发的。目标对象想要通过代理端120连接目标数据库,需要事先在代理端120上进行身份注册。代理端120进行身份验证后可以保存目标对象的身份信息,并且为目标对象颁发对象公钥与对象私钥。
对象公钥与对象私钥是目标对象专有的,对象公钥发送给目标对象,以便目标对象对数据访问请求进行加密,对象私钥则存储在代理端120中,以便代理端120对来自目标对象的数据访问请求进行解密。解密验证成功后,可以表示发送这个数据访问请求的对象是在代理端120中注册的安全对象,可以为其提供数据访问请求处理服务。
利用对象公钥与对象私钥验证目标对象身份可以排查恶意对象,有利于提高数据安全性。此外,针对于代理端120注册过的对象进行数据访问请求的处理,可以快速调取对象的身份信息,有利于提高数据访问请求的处理效率。
数据访问请求中可以包含目标对象的对象身份信息、对象变量数据以及目标数据库。对象身份信息可以是目标对象用于发送数据访问请求的终端地址,例如,互联网协议地址或局域网地址等,也可以是目标对象的对象标识。对象标识可以是目标对象在代理端120进行身份注册后,由代理端120分配得到的。
对象变量数据是目标对象访问目标数据库时所需的变量数据,可以包含环境变量数据与对象自定义变量数据。环境变量数据限定了用于访问目标数据库的数据连接中的环境设置。对象自定义变量数据规定了用于处理目标对象的数据访问请求时,数据连接所需的特定变量。不同数据访问请求中的环境变量数据与对象自定义变量数据往往具有较大的差异性。
目标数据库指示了目标对象想要访问的数据库。如图4所示,代理端120可以连接多个数据库,包括数据库D1、数据库D2与数据库D3。这些数据库可以部署在同一服务器130的环境中,也可以部署在不同服务器130的环境中。针对于不同的数据库,代理端120中可以存储不同的数据连接以备连接对应的数据库。
步骤320、根据对象身份信息以及对象变量数据在可用数据连接集合中调用目标数据连接。
可用数据连接集合为连接到目标数据库的数据连接构成的集合。由于代理端120可以连接多个数据库。在一种实施方式中,根据对象身份信息以及对象变量数据在可用数据连接集合中调用目标数据连接可以包括:
根据目标数据库从可用数据连接集中筛选可用数据连接;
根据对象身份信息以及对象变量数据从可用数据连接中调用目标数据连接。
在这种实施方式中,用于连接不同数据库的数据连接存储在一个可用数据连接集合中。在接收到数据访问请求后,首先从可用数据连接中找到可用于连接目标数据库的可用数据连接;再基于对象身份信息以及对象变量数据从可用数据连接中调用目标数据连接。
在另一种实施方式中,根据对象身份信息以及对象变量数据在可用数据连接集合中调用目标数据连接,包括:根据对象身份信息以及对象变量数据在目标数据库对应的可用数据连接集合中调用目标数据连接。
在这个实施方式中,可用数据连接集合有多个,用于连接不同数据库的数据连接在代理端120中存储在不同的可用数据连接集合中。在接收到数据访问请求后,首先找到目标数据库对应的可用数据连接集合;再根据对象身份信息以及对象变量数据在目标对象数据库对应的可用数据连接集合中调用目标数据连接。
由于用于连接不同数据库的数据连接已经按照数据库被事先分类存储,因此,调用目标数据连接的效率较高。
目标数据连接是可用数据连接集合中可以使目标对象访问目标数据库的数据连接。由于不同的数据连接中的数据变量不同,不一定每一个数据连接都可以对数据访问请求进行高效处理。因此,根据对象身份信息以及对象变量数据在可用数据连接集合中调用的目标数据连接可以是目标对象的数据访问请求的处理需求,有利于提高数据访问请求的处理效率。
在一种实施方式中,根据对象身份信息以及对象变量数据在可用数据连接集合中调用目标数据连接,可用数据连接集合为连接到目标数据库的连接构成的集合,包括:
当可用数据连接集合是空集时,基于对象身份信息以及对象变量数据建立用于连接目标数据库的目标数据连接;
当可用数据连接集合中包含至少一个数据连接时,根据对象身份信息以及对象变量数据在可用数据连接集合中调用目标数据连接。
当目标数据库还未被任何对象访问过,或者可用数据连接集合中的数据连接全部被其他数据访问请求调用时,可用数据连接集合中没有可以用于访问目标数据库的数据连接。因此,当可用数据连接集合是空集时,可以基于数据访问请求中的对象身份信息与对象变量数据新建用于连接目标数据库的目标数据连接。
由于在前述实施方式中,代理端120可以用于连接多个数据库,可用数据连接集合中可以包含用于连接不同数据库的数据连接。基于此,当可用数据连接集合不是空集,但是其中不包含用于连接目标数据库的数据连接时,基于对象身份信息以及对象变量数据建立用于连接目标数据库的目标数据连接。又因为,目标数据连接还可以从目标数据库对应的可用数据连接集合中调用。因此,当不存在目标数据库对应的可用数据连接集合或目标数据库对应的可用数据连接集合是空集时,基于对象身份信息以及对象变量数据建立用于连接目标数据库的目标数据连接。
基于对象身份信息以及对象变量数据建立用于连接目标数据库的目标数据连接,可以将新建的目标数据连接的连接标识信息设置为对象身份信息,将目标数据连接中的连接环境变量信息按照对象变量数据进行设置。这样新建的目标数据连接可以高效地处理数据访问请求。
在一种实施方式中,当可用数据连接集合是空集时,基于对象身份信息以及对象变量数据建立用于连接目标数据库的目标数据连接,包括:
当可用数据连接集合是空集时,获取除目标数据库以外的其他数据库对应的可复用数据连接;
基于对象身份信息以及对象变量数据将可复用数据连接转换为所述目标数据库的目标数据连接。
除目标数据库以外的其它数据库可以是代理端120可以连接的、除目标数据库以外的数据库。当目标数据库对应的可用数据连接集合中没有可复用数据连接,但其它数据库有可复用数据连接时,可以将其他数据库的可复用数据连接转换为目标数据库的目标数据连接。
当可用数据连接集合是空集时,获取除目标数据库以外的其它数据库对应的可复用数据连接,包括:
当可用数据连接集合是空集时,获取除目标数据库以外的其它数据库对应的可复用数据连接的数目;
获取对应的可复用数据连接的数目最大的其它数据库对应的可复用数据连接。
在获取其他数据库的可复用数据连接时,可以考虑其它数据库的可复用数据连接的数目。当其它数据库的可复用数据连接的数目较少时,如果将可复用数据连接转换为目标数据库的目标数据连接,在接收到连接其它数据库的数据访问请求后,可能会出现无连接可用的情况。因此,可以获取对应的可复用数据连接的数目最大的其它数据库对应的可复用数据连接。
根据各个其它数据库的可复用数据连接的数目获取可复用数据连接实现了在从其它数据库获取可复用数据连接的同时,不损失其它数据库的数据访问效率,进而提升代理端120处理多个数据库的数据访问请求的效率。
在获取其他数据库对应的可复用数据连接后,可以按照对象身份信息重置可转移数据连接的连接标识信息,使可转移数据连接可以与目标对象建立联系,以便处理来自目标对象的数据访问请求;按照对象变量数据重置可复用数据连接的连接环境变量数据,以便可转移数据连接可以为数据访问请求提供所需的处理环境。在重置可复用数据连接的连接标识信息与连接环境变量数据后,将可复用数据连接转换为目标数据库的目标数据连接。例如,数据连接L1起初用于连接数据库D1,在被数据库D2的数据访问请求调用后,数据连接L1从代理端120与数据库D1之间的数据连接转换为从代理端120与数据库D2之间的数据连接。
当可用数据连接是空集时,获取其他数据库对应的可复用数据连接作为目标数据连接实现了对代理端120中存储的各个数据库对应的可复用数据连接的动态规划,有效减少代理端120中的数据存储量,并提升数据连接的使用效率。
当可用数据连接集合中包含至少一个数据连接时,可以根据对象身份信息以及对象变量数据在可用数据连接集合中调用目标数据连接。
在一种实施方式中,当可用数据连接集合中包含至少一个数据连接时,根据对象身份信息以及对象变量数据在可用数据连接集合中调用目标数据连接,包括:
当可用数据连接集合中包含至少一个数据连接,获取每一数据连接的连接标识信息与连接环境变量数据;
根据对象身份信息、对象变量数据以及每一数据连接的连接标识信息与连接环境变量数据在可用数据连接集合包含的至少一个数据连接中确定目标数据连接;
调用目标数据连接。
在这个实施方式中,连接标识信息可以指示数据连接上一次用于访问目标数据库时的对象身份。因此,连接标识信息可以与上一次处理的数据访问请求中的对象身份信息相同。连接环境变量数据中可以包含数据连接用于处理数据访问请求的环境变量与自定义变量数据等。一个数据连接中的变量有很多,连接环境变量数据可以基于对象变量数据获取。例如,对象变量数据有V1、V2与V3,那么可以从每一数据连接的多个变量中获取V1、V2与V3作为连接环境变量。
对象变量数据与连接环境变量数据中可以包含多个变量数据,每个变量数据由一个变量名与一个变量值构成,具体格式可以是“变量名:变量值”。在将对象变量数据与连接环境变量数据进行比对时,可以先基于对象变量数据中每个变量数据的变量名,在连接环境变量中找到对应的变量名,再比对这个变量名对应的两个变量值是否一致。
在一种实施方式中,根据对象身份信息、对象变量数据以及每一数据连接的连接标识信息与连接环境变量数据在可用数据连接集合包含的至少一个数据连接中确定目标数据连接,包括:
将对象变量数据进行哈希处理得到整数型的定长对象变量数据;
将每一数据连接的连接环境变量数据进行哈希处理得到整数型的定长连接环境变量数据;
根据对象身份信息、定长对象变量数据以及每一数据连接的连接标识信息与定长连接环境变量数据在可用数据连接集合包含的至少一个数据连接中确定目标数据连接。
由于变量数据中变量名与变量值的数据格式可以是字符串,在进行变量名与变量值比对时,比对效率较低。又因为不同变量名的字符串长度可能不同,同一变量名对应的不同变量值的字符串长度也可能不同,这导致了变量数据的存储空间不可控,一些变量数据的数据长度可能会过长,造成存储效率与比对效率较低。
因此,在本实施例中,将对象变量数据进行哈希处理得到整数型的定长对象变量数据。具体地,可以是将对象变量数据中的变量名与对象变量值分别进行哈希处理,得到整数型的定长变量名与定长变量值。例如,对象变量数据为“TRACK:OFF”,其中,“TRACK”为变量名,“OFF”为变量值。将“TRACK”经过哈希处理后得到的整数型定长变量名为0101,将“OFF”进行哈希处理后得到的整数型定长变量值为01,因此,定长对象变量数据为0101:01。
将每一数据连接的连接环境变量数据进行整数型的定长连接环境变量数据,具体过程与将对象变量数据进行哈希处理的过程相同,此处不再赘述。
根据对象身份信息、定长对象变量数据以及每一数据连接的连接标识信息与定长连接环境变量数据确定目标数据连接,可以将对象身份信息与每一数据连接的连接标识信息进行比对,将定长对象变量数据与每一数据连接的定长连接环境变量数据进行比对,根据比对结果确定目标数据连接。
由于对象变量数据与连接环境变量数据的比对由字符串之间的比对变为了整数型数据之间的比对,比对效率提高。而且变量数据都是定长的,有利于控制存储空间,提高比对效率。
在根据对象身份信息、对象变量数据以及每一数据连接的连接标识信息与连接环境变量数据在可用数据连接集合中确定目标数据连接时,可以比对对象身份信息与每一数据连接的连接标识信息,比对对象变量数据与每一数据连接的连接环境变量数据,根据比对结果确定目标数据连接。
在一种实施方式中,根据对象身份信息、对象变量数据以及每一数据连接的连接标识信息与连接环境变量数据在可用数据连接集合包含的至少一个数据连接中确定目标数据连接,包括:
根据每一数据连接的连接标识信息和连接环境变量数据与对象身份信息和对象变量数据的比对结果确定每一数据连接的连接类别;
根据每一数据连接的连接类别,在可用数据连接集合包含的至少一个数据连接中确定目标数据连接。
在这个实施方式中,将每一数据连接的连接标识信息与对象身份信息进行比对;将连接环境变量数据与对象变量数据进行比对;根据两个比对结果,将数据连接分成三个连接类别。连接类别包括第一类别、第二类别与第三类别,其中,第一类别的数据连接的连接标识信息与对象身份信息一致且连接环境变量数据与对象变量数据一致,第二类别的数据连接的连接标识信息与对象身份信息一致但连接环境变量数据与对象变量数据不一致,第三类别的数据连接的连接标识信息与对象身份信息不一致且连接环境变量数据与对象变量数据不一致。
在一种实施方式中,根据每一数据连接的连接类别,在可用数据连接集合包含的至少一个数据连接中确定目标数据连接,包括:
当至少一个数据连接中存在第一类别的数据连接,将第一类别的数据连接确定为目标数据连接;
当至少一个数据连接中不存在第一类别的数据连接但存在第二类别的数据连接,将第二类别的数据连接确定为目标数据连接;
当至少一个数据连接中不存在第一类别的数据连接且不存在第二类别的数据连接,将第三类别的数据连接确定为目标数据连接。
在这个实施方式中,当至少一个数据连接中存在第一类别的数据连接时,可以将第一类别的数据连接确定为目标数据连接。由于第一类别的数据连接的连接标识信息与对象身份信息一致,连接环境变量数据也与对象变量数据一致,因此利用第一类别的数据连接的连接环境不需要进行变量调整即可处理这个数据访问请求,处理效率最高。
如果至少一个数据连接中存在多个第一类别的数据连接,可以将其中任意一个确定为目标数据连接。
当至少一个数据连接中不存在第一类别的数据连接但存在第二类别的数据连接时,可以将第二类别的数据连接确定为目标数据连接。由于第二类别的数据连接的连接标识信息与对象身份信息一致,因此第二类别的数据连接可以处理来自目标对象的数据访问请求。由于连接环境变量数据与对象变量数据不一致,因此,可以将第二类别的数据连接中的连接环境变量数据进行调整,例如使用set语句设置连接环境变量数据,使连接环境变量数据与对象变量数据一致,确保第二类别的数据连接可以高效且准确地处理数据访问请求。
如果至少一个数据连接中不存在第一类别的数据连接,但存在多个第二类别的数据连接,可以将任意一个确定为目标数据连接。
当至少一个数据连接中不存在第一类别的数据连接也不存在第二类别的数据连接,将第三类别的数据连接确定为目标数据连接。由于第三类别的数据连接的连接标识信息与对象身份信息不一样,连接环境变量数据与对象变量数据也不一样。因此,可以按照对象身份信息重置连接标识信息,按照对象变量数据设置连接环境变量数据。例如,使用COM_CHANGE_USER命令将连接标识信息重置为对象身份信息;利用set语句设置连接环境变量数据。按照对象身份信息重置连接标识信息可以为目标数据连接赋予处理来自目标对象的数据访问请求的权限,让目标数据连接在被使用期间只能处理来自目标对象的事务,提高了数据访问安全性。按照对象变量数据设置数据连接的连接环境变量数据可以使目标数据连接中的环境变量满足目标对象的数据访问请求的需要,避免因环境变量不一致而导致访问错误的问题。
按照可用数据连接集合中存在的数据连接的连接类别为数据访问请求确定目标数据连接。利用这个过程可以将至少一个数据连接按照类别进行优先级的排序,优先级最高的指示了该数据连接与数据访问请求的匹配程度最高。将优先级最高的数据连接确定为目标数据连接,有利于提高确定目标数据连接的准确度与效率。
至少一个数据连接可以逐个将连接标识信息和连接环境变量数据与对象身份信息和对象变量数据进行比对。如果数据连接的比对结果是第二类别的数据连接,将数据连接暂存在第二类别的数据连接集合;如果数据连接的比对结果是第三类别的数据连接,将数据连接暂存在第三类别的数据连接集合;如果数据连接的比对结果是第一类别的数据连接,那么直接将数据连接确定为目标数据连接,并将第二类别的数据连接集合与第三类别的数据连接集合释放,其它数据连接的连接标识信息与连接环境变量数据不需要再与对象身份信息和对象变量数据进行比对。当全部数据连接的连接标识信息和连接环境变量数据均与对象身份信息和对象变量数据比对后,不存在第一类别的数据连接,那么就从第二类别的数据连接集合中确定目标数据连接。如果也不存在第二类别的数据连接集合,那么就从第三类别的数据连接集合中确定目标数据连接。
在另一种实施方式中,目标对象有多个且每一目标对象对应于一个数据访问请求,多个数据访问请求中的目标数据库相同。基于此,根据每一数据连接的连接标识信息和连接环境变量数据与对象身份信息和对象变量数据的比对结果确定每一数据连接的连接类别,包括:
根据每一数据连接的连接标识信息和连接环境变量数据与每一数据访问请求中的对象身份信息和对象变量数据的比对结果,确定每一数据连接针对每一数据访问请求的连接类别;
根据每一数据连接的连接类别,在可用数据连接集合包含的至少一个数据连接中确定目标数据连接,包括:
根据每一数据连接针对每一数据访问请求的连接类别在可用数据连接集合包含的至少一个数据连接中确定每一数据访问请求对应的目标数据连接。
在这个实施方式中,将每一数据连接的连接标识信息连接环境变量信息与每一个数据访问请求中的对象身份信息和对象变量数据进行比对,确定每一数据连接针对每一数据访问请求的连接类别。数据访问请求的连接类别可以被分为第一类别的数据连接、第二类别的数据连接与第三类别的数据连接。这三个类别的数据连接与前述实施例中三个类别的数据连接相同,为节约篇幅,此处不再赘述。
每一个数据连接针对来自于不同目标对象的数据访问请求可能是不同的。不同的数据访问请求来自于不同的目标对象,具有不同的对象身份信息。又因为一个数据访问请求的第一类别的数据连接和第二类别的数据连接的连接标识信息与数据访问请求的对象身份信息相同。因此,不同的数据访问请求不会有相同的第一类别的数据连接与第二类别的数据连接;一个数据访问请求的第一类别的数据连接也不可能是其他数据访问请求的第二类别的数据连接。如果一个数据连接属于一个数据访问请求的第一类别的数据连接或第二类别的数据连接,那么它对于其他数据访问请求来说,就是第三类别的数据连接。如图5所示,数据连接L1针对于数据访问请求Q1是第三类别的数据连接,针对于数据访问请求Q2是第三类别的数据连接,针对于数据访问请求Q3是第一类别的数据连接。数据连接L2针对于数据访问请求Q1是第二类别的数据连接,针对于数据访问请求Q2是第三类别的数据连接,针对于数据访问请求Q3是第三类别的数据连接。数据连接L3针对于数据访问请求Q1是第二类别的数据连接,针对于数据访问请求Q2是第三类别的数据连接,针对于数据访问请求Q3是第三类别的数据连接。数据连接L4针对于数据访问请求Q1是第三类别的数据连接,针对于数据访问请求Q2是第三类别的数据连接,针对于数据访问请求Q3是第三类别的数据连接。因此,根据每一数据连接针对于不同数据访问请求的连接类别,为每一数据访问请求分配目标数据连接。
在一种实施方式中,根据每一数据连接针对每一数据访问请求的连接类别在可用数据连接集合包含的至少一个数据连接中确定每一数据访问请求对应的目标数据连接,包括:
获取多个数据访问请求中,对应的至少一个数据连接中存在第一类别的数据连接的数据访问请求,针对每一存在第一类别的数据连接的数据访问请求,将第一类别的数据连接确定为数据访问请求的目标数据连接;
获取多个数据访问请求中,对应的至少一个数据连接中不存在第一类别的数据连接但存在第二类别的数据连接的数据访问请求,针对每一不存在第一类别的数据连接但存在第二类别的数据连接的数据访问请求,将第二类别是数据连接确定为数据访问请求的目标数据连接;
获取多个数据访问请求中,对应的至少一个数据连接中不存在第一类别的数据连接与第二类别的数据连接的数据访问请求,针对每一不存在第一类别的数据连接与第二类别的数据连接的数据访问请求,将不是其他数据访问请求的目标数据连接的第三类别的数据连接确定为数据访问请求的目标数据连接。
在本实施方式中,按照多个数据访问请求对应的各个数据连接的连接类别,将多个数据访问请求进行分类,并依次确定每一类别中的数据访问请求对应的目标数据连接。
首先,获取对应的至少一个数据连接中存在第一类别的数据连接的数据访问请求。存在第一类别的数据连接表示可用数据连接池中存在可以准确匹配这个数据访问请求的数据连接。这类数据访问请求可以最先被分配目标数据连接。将第一类别的数据连接确定为这类数据访问请求的目标数据连接。如果一个数据访问请求对应于多个第一类别的数据连接,可以从中任选一个作为目标数据连接。例如,在图5中,数据访问请求Q1、数据访问请求Q2与数据访问请求Q3中,只有数据访问请求Q3对应的多个数据连接中存在第一类别的数据连接,也就是数据连接L1。因此,将数据连接L1首先确定为数据访问请求Q3的目标数据连接。
其次,获取对应的至少一个数据连接中不存在第一类别的数据连接但存在第二类别的数据连接的数据访问请求。这类数据访问请求在与至少一个数据连接进行比对时,对象身份信息与连接标识信息一致,但是对象变量数据与连接环境变量数据不一致。第二类别的数据连接的处理效率仅次于第一类别的数据连接,在数据访问请求没有对应的第一类别的数据连接的情况下,可以选择第二类别的数据连接。因此,可以将第二类别的数据连接确定为这类数据访问请求的目标数据连接。如果一个数据访问请求对应于多个第二类别的数据连接,可以从多个第二类别的数据连接中任选一个作为目标数据连接。例如,在图5中,数据访问请求Q1对应的多个数据连接中不存在第一类别的数据连接,但是存在第二类别的数据连接,也就是数据连接L2与数据连接L3。因此,可以将数据连接L2与数据连接L3中的任意一个确定为数据访问请求Q1的目标数据连接。在将第二类别的数据连接确定为目标数据连接后,可以基于数据访问请求中的对象变量数据对目标数据连接中的连接环境变量数据进行调整。
最后,获取对应的至少一个数据连接中既不存在第一类别的数据连接,也不存在第二类别的数据连接的数据访问请求。这类数据访问请求对应的至少一个数据连接全部都是第三类别的数据连接,也就是说可用数据连接集合中不存在可以匹配对象身份信息与对象变量数据的数据连接。因此,可以将第三类别的数据连接确定为数据访问请求的目标数据连接。但是一个数据访问请求的第三类别的数据连接可能是其他数据访问请求的第一类别的数据连接或者第二类别的数据连接,并在前述两个步骤中已经被确定为其他数据访问请求的目标数据连接。因此,可以将不是其他数据访问请求的目标数据连接的第三类别的数据连接确定为这个数据访问请求的目标数据连接。例如,在图5中,数据访问Q2对应的多个数据连接中只存在第三类别的数据连接,其中,数据连接L1是数据访问请求Q3的第一类别的数据连接,已被确定为数据访问请求Q3的目标数据连接;数据连接L2与数据连接L3是数据访问请求Q1的第二类别的数据连接,当数据连接L2被确定为数据访问请求Q1的目标数据连接时,数据连接L3可以作为数据访问请求Q2的目标数据连接,当数据连接L3被确定为数据访问请求Q1的目标数据连接时,数据连接L2可以作为数据访问请求Q2的目标数据连接;数据连接L4对于数据访问请求Q1与数据访问请求Q3均为第三类别的数据连接,因此数据连接L4也可以作为数据访问请求Q2的目标数据连接。在将第三类别的数据连接确定为目标数据连接后,可以基于对象身份信息重置目标数据连接的连接标识信息,基于对象变量数据调整目标数据连接的连接环境变量。
在图5中,经过上述过程,为不同数据访问请求从可用数据连接集合中获取目标数据连接的结果可以是:数据访问请求Q1的目标数据连接为数据连接L2,数据访问请求Q2的目标数据连接为数据连接L4,数据访问请求Q3的目标数据连接为数据连接L1。
上述实施例中,首先将处理效率最高的第一类别的数据连接分配给对应的数据访问请求,再将处理效率稍低的第二类别的数据连接分配给对应的数据访问请求,最后从剩余的数据连接中将处理效率最低的第三类别的数据连接分配给对应的数据访问请求。通过这个过程,确保每一个数据访问请求都能得到处理该数据访问请求效率最高的目标数据连接,同时也不会影响其他数据访问请求的目标数据连接的处理效率,从整体上提升了多个目标对象的数据库访问效率。
确定每一数据连接针对每一数据访问请求的连接类型,并基于连接类别为不同的数据访问请求分配不同的数据连接作为对应的目标数据连接,可以使每一数据访问请求都尽可能获取更加准确的目标数据连接,以便提高同时多个数据访问请求整体的访问效率。
上述实施例中,基于比对结果将数据连接分为第一类别的数据连接、第二类别的数据连接与第三类别的数据连接并按照数据连接类别确定目标数据连接,可以准确地找到与数据访问请求匹配度较高的数据连接,有利于提高确定目标数据连接的准确性。
在确定目标数据连接后调用目标数据连接,以便利用目标数据连接处理数据访问请求。
利用对象身份信息与数据连接的连接标识信息的比对,以及对象变量数据与连接环境变量数据的比对从至少一个数据连接中确定目标数据连接,有利于提高调用目标数据连接的准确性。
在前述实施例中,当可用数据连接集合是空集时,建立目标数据连接,当可用数据连接集合中包含至少一个数据连接时,从中调用目标数据连接。通过这个过程可以根据可用数据连接集合的状态快速调整与目标数据库建立连接的方式,有利于提高目标对象访问目标数据库的访问效率。
由于代理端120可以为多个对象与多个数据库建立连接,因此,可用数据连接集合中的存储的数据连接的数据量是十分庞大的。当接收到较多的数据访问请求时,从庞大的数据集合中为每一数据访问请求调用对应的目标数据连接的调用效率较低。因此,在另一种实施方式中,如图6所示,代理端120可以中包含请求分配节点与多个请求处理节点。
请求处理节点用来根据数据访问请求调用目标数据连接,并利用目标数据连接来连接目标数据库。每一请求处理节点中包含可用数据连接集合。不同请求处理节点中的可用数据连接集合中的数据连接可以是相同的,也可以是不同的。多个请求处理节点进行数据访问请求处理的过程互不干扰。请求分配节点用来将接收到的数据处理请求进行分配,确定该数据处理请求由哪一请求处理节点进行处理。
基于此,根据对象身份信息以及对象变量数据在可用数据连接集合中调用目标数据连接,包括:
由请求分配节点根据数据访问请求确定目标请求处理节点;
根据对象身份信息以及对象变量数据在目标请求处理节点中的可用数据连接集合中调用目标数据连接。
代理端120在接收到数据访问请求时,由请求分配节点根据数据访问请求从多个目标请求处理节点中确定目标请求节点。
在一种实施方式中,由请求分配节点根据数据访问请求确定目标请求处理节点,包括:
获取多个请求处理节点中可用数据连接集合不是空集的非空集请求处理节点;
获取每一非空集请求处理节点中正在处理的数据访问请求数量,并根据正在处理的数据访问请求数量从非空集请求处理节点中确定目标请求处理节点。
如果一个请求处理节点中的可用数据连接集合是空集,可以表示这个请求处理节点中当前没有可用的数据连接,如果利用这个请求处理节点进行数据访问请求处理需要再建立与目标数据库之间的连接。因此,可以获取存在可用数据连接的请求处理节点,并从中确定目标请求处理节点。利用存在可用数据连接的请求处理节点进行数据访问请求处理,不需要新建于目标数据库之间的连接,减少了目标数据库的连接数,避免目标数据库的连接数过道导致对象访问受限,提高了对象访问效率。
获取每一非空集请求处理节点中正在处理的数据访问请求数量。请求处理节点正在处理的数据访问请求数量越多,节点越拥挤,处理效率越慢。因此,根据正在处理的数据访问请求数量从非空集请求处理节点中确定目标请求处理节点,可以将正在处理的数据访问请求数量最小的请求处理节点确定为数据访问请求的目标请求处理节点,以提高数据访问请求的处理效率。
利用请求分配节点与多个请求处理节点进行数据访问请求的处理,可以对数据访问请求进行分流,避免处理堵塞,有利于提高数据访问请求处理的效率。
步骤330、基于目标数据连接向目标数据库发送数据访问请求,并接收目标数据库针对数据访问请求返回的事务处理状态信息。
在确定目标数据连接后,利用目标数据连接向目标数据库发送数据访问请求。数据访问请求中还可以包含待处理事务,目标数据库可以对待处理事务进行处理。处理完成后,将事务处理状态信息通过目标数据连接返回给代理端120。
事务处理状态信息由目标数据库通过对事务处理过程的事务相关信息的检测得到,例如,通过目标数据库中的“session_track_schema”变量控制数据库检测正在处理的事务的相关信息。如图7所示,对事务相关信息的检测可以包含以下几个方面:会话状态检测、数据库环境变量检测、数据检测、事务标识信息检测、事务性质变化检测与事务状态变化检测。
会话状态检测用于检测利用目标数据连接对目标数据库进行数据访问的会话状态,具体可以包括:每隔一段时间确定目标数据连接是否正常;检测目标对象的在目标数据库的行为等。
数据库环境变量检测可以用于检测目标数据库在进行事务处理过程中,数据库的环境变量的变化。
数据检测可以用于检测目标数据库在进行事务处理过程中数据的变化,例如,待处理事务为在目标数据库的其中一个表中添加或者删除数据。
事务标识信息可以是事务在目标数据库中进行处理时的全局唯一标识,事务在目标数据库中的每一个行为都可以与事务标识信息关联。因此事务标识信息检测可以检测事务在目标数据库中的行为。
事务性质变化检测可以是对事务本身的性质的检测,例如事务的隔离级别与读写权限等,通过对事务性质变化的检测可以针对事务性质的变化对事务处理过程进行调整。
事务状态变化检测可以是对事务状态的检测,例如,事务的开启状态与事务的锁定状态等。
目标数据库发送给代理端120的事务处理状态信息可以包含上述事务相关信息中的一种或者多种。如图8所示,事务处理状态信息可以以事务数据包的形式发送给代理端120。由代理端120从事务数据包中解析出事务处理状态信息。当数据访问请求中包含多个事务处理语句时,目标数据库每执行一个事务处理语句,可以向代理端120返回一个事务数据包。事务处理包中可以包含多个变量,具体格式可以如图9所示,规定了变量数据类型、变量名称与变量描述,其中虚线框中的内容可以指示了处理对应的事务处理语句后的事务处理状态信息。将虚线框内的变量信息解析出来可以得到事务处理状态信息。
在另一种实施方式中,基于目标数据连接向目标数据库发送数据访问请求,并接收目标数据库针对数据访问请求返回的事务处理状态信息,包括:
基于目标数据连接向目标数据库发送数据访问请求,并接收目标数据库针对数据访问请求返回的事务处理状态信息与目标数据连接的数据连接状态信息。
在这个实施方式中,目标数据库不仅可以返回事务处理状态信息,还可以返回目标数据连接的数据连接状态信息。事务处理状态信息已在前述内容中详细描述,此处不再赘述。目标数据连接的数据连接状态信息是指目标数据连接的连接状态,可以包括目标数据连接中的连接变量状态与事务队列状态等。
连接变量状态是指事务处理过程中存储在目标数据连接中的变量信息的状态,可以是目标对象预定义的变量信息的状态,也可以是在事务处理过程中由目标数据库产生的变量的状态。
目标数据连接中的事务队列中可以排列数据访问请求中的多个待处理事务,这些待处理事务依次由目标数据库进行事务处理。因此,事务队列状态可以反映目标数据连接中的事务队列中各个事务的处理状态。
代理端120接收来自目标数据库的事务处理状态信息与数据连接状态信息可以从事务处理的角度与目标数据连接状态的角度综合评估目标数据连接的复用性,有利于提高后续步骤中复用性验证的准确性。
步骤340、根据事务处理状态信息对目标数据连接进行复用性验证,得到复用验证结果。
对目标数据连接的复用性验证可以验证目标数据连接是否完成对数据处理请求的处理。
在一种实施方式中,事务处理状态信息包括事务标识信息与事务状态变化信息;基于此,根据事务处理状态信息对目标数据连接进行复用性验证,得到复用验证结果,包括:
基于事务标识信息与事务状态变化信息确定目标数据库对数据访问请求中事务的事务处理结果;
根据事务处理结果确定复用验证结果。
在这个实施方式中,基于事务标识信息与事务状态变化信息确定目标数据库对数据访问请求中事务的事务处理结果。由于事务标识信息可以检测事务在目标数据库中的行为,事务状态变化信息可以检测事务的状态。因此,通过事务标识信息与事务状态变化信息可以确定事务在目标数据库中是否已经处理完成。
当事务处理结果指示这个事务已经处理完成,那么复用验证结果可以表示复用验证通过。这个目标数据连接可以被其他数据访问请求复用。
基于事务标识信息与事务状态变化信息对目标数据连接进行复用性验证,可以通过判断事务是否处理完成来决定目标数据连接是否可复用,有利于提高复用性验证效率,进而提高数据连接的复用率。
在前述一种实施方式中,目标数据库会针对数据访问请求返回事务处理状态信息与数据连接状态信息。基于此,根据事务处理状态信息对目标数据连接进行复用性验证,得到复用验证结果,包括:
根据事务处理状态信息与数据连接状态信息对目标数据连接进行复用性验证,得到复用验证结果。
在一种实施方式中,根据事务处理状态信息与数据连接状态信息对目标数据连接进行复用性验证,得到复用验证结果,包括:
从数据连接状态信息中获取目标数据连接中的事务队列信息与处理事务过程中产生的待处理变量和语句信息;
根据事务处理状态信息、事务队列信息与待处理变量和语句信息对目标数据连接进行复用性验证,得到复用验证结果。
事务队列信息指示了在目标数据库处理事务处理状态信息对应的事务后,目标数据连接中剩余的事务队列,具体可以包含目标数据连接中待处理事务队列与等待处理结果事务队列。如图10所示,目标数据库在处理数据访问请求中的事务T1后,返回事务T1的事务处理状态信息。此时目标数据连接中的待处理事务还包括待处理事务T2、待处理事务T3与待处理事务T4;等待目标数据库返回处理结果的事务还有事务T5。
待处理变量和语句信息可以是目标数据库在进行事务处理的过程中产生的待处理变量和语句,这些待处理变量和欲绝可能会影响目标数据连接的可复用性。例如,在进行数据处理过程中产生的临时表与临时变量、用于准备事务处理的“prepare”语句等。对于待处理变量和语句信息可以通过对事务处理过程的解析得到。
根据事务处理状态信息、事务队列信息与待处理变量和语句信息对目标数据连接进行复用性验证,可以首先利用事务处理状态信息确定事务是否处理完成,在利用事务队列信息和待处理变量和语句信息确定目标数据连接是否符合可复用条件。
具体地,当事务处理状态信息、事务队列信息与待处理变量和语句信息同时满足以下条件,复用验证结果可以确认目标数据连接可复用:
根据事务处理状态信息确定事务处理完成;
根据事务队列信息确定目标数据连接中不包含待处理事务与等待处理结果的事务;
根据待处理变量和语句信息确定目标数据连接中不包含临时表与临时变量、用于准备事务处理的“prepare”语句与用于锁定目标数据库或数据表的相关变量。
上述条件中只要有一个不满足,复用验证结果可以确认目标数据连接不可复用。
上述实施例中,利用事务处理状态信息确认事务是否处理完成,但当数据访问请求中包含多个事务时,单个事务处理完成后,目标数据连接中还存在其它事务,不可被复用。因此,利用事务队列信息可以确定数据访问请求中是否全部事务被处理完成。在事务处理过程中,还会产生一些待处理的变量和语句,这些变量和语句如果未被处理,会影响目标数据连接的复用。因此,利用事务处理状态信息、事务队列信息与待处理变量和语句信息进行复用性验证,可以提高验证准确性。
利用事务处理状态信息与数据连接状态信息来进行复用性验证可以确保事务处理完成且数据连接可以被安全释放,提高了复用性验证的准确性。
步骤350、当复用验证结果确认目标数据连接可复用时,将目标数据连接重新添加至可用数据连接集合中以备其他数据访问请求调用。
当复用验证结果确认目标数据连接可复用时,目标数据连接就可以被重新添加到可用数据连接集合中,不需要等待目标对象的确认。
在一种实施方式中,当复用验证结果确认目标数据连接可复用时,将目标数据连接重新添加至可用数据连接集合中以备其他数据访问请求调用,包括:
获取目标对象的预定访问时间间隔;
当复用验证结果确认目标数据连接可复用,且在预定访问间隔内未接收到来自目标对象的后续数据访问请求时,将目标数据连接重新添加至可用数据连接集合中以备其他数据访问请求调用。
当目标对象的数据访问请求处理完成后,目标对象可能会马上发出下一个数据访问请求。如果重新为目标对象调取目标数据连接,那么会影响目标对象的数据访问效率。因此,在本实施方式中,可以获取目标对象的预定访问间隔。
预定访问时间间隔是预设的一个时间阈值,例如,1分钟。当复用验证结果确认目标数据连接可复用时,不立刻将目标数据连接重新添加至可用数据连接集合中,而是等待预定访问时间间隔。如果在预定访问时间间隔内,目标对象再次发出针对目标数据库的数据访问请求,那么可以直接利用目标数据连接传输数据访问请求并访问目标数据库。如果在预定访问时间间隔内,未接收到来自目标对象的数据访问请求,就将目标数据连接重新添加至可用数据连接集合中以备其它数据访问请求调用。如果在预定访问时间间隔内,目标对象主动断开与目标数据库的连接,那么可以直接将目标数据连接重新添加至可用数据连接集合中。
上述实施方式可以提高目标对象在短时间内连续多次访问目标数据库的访问效率。
在另一种实施方式中,数据库访问请求的处理方法还包括:
显示多个数据库对应的数据连接管理界面,数据连接管理界面包括可复用数据连接控件与不可复用数据连接控件;
响应于将目标可复用数据连接控件拖动至目标数据库对应的数据连接管理界面的拖动操作,将目标可复用数据连接控件对应的数据连接转换为目标数据库对应的可复用数据连接,目标可复用数据连接控件为目标数据库以外的其他数据库对应的数据连接管理界面中的可复用数据连接控件。
在代理端120的显示界面可以显示包含目标数据库在内的多个数据库对应的数据连接管理界面。如图11A所示,显示界面中显示了数据库D1、数据库D2、数据库D3与数据库D4的数据连接管理界面,其中,数据库D2是目标数据库。每个数据连接管理界面中显示可复用数据连接控件与不可复用数据连接控件。可复用数据连接控件与不可复用数据连接控件可以利用如图11A中的可复用状态标识区分;也可以利用不同文本颜色进行区分,例如可复用数据连接控件显示为绿色,不可复用数据连接控件显示为红色。
目标可复用数据连接控件可以是需要被转换的数据连接控件。当目标数据库的数据连接管理界面中的没有可复用数据连接控件,可以表示用于连接目标数据库的数据连接十分紧张。在接收到访问目标数据库的数据访问请求后需要新建目标数据连接或者需要排队等待处理。当除目标数据库以外的其他数据库的数据连接管理界面中有多个可复用数据连接控件,例如,数据库D1与数据库D4的数据连接管理界面,可以表示用于连接对应数据库的数据连接有空闲。因此,可以将其中的可复用数据连接控件作为目标可复用数据连接控件拖动至目标数据库的数据连接管理界面中。如图11B所示,将数据库D4的数据连接管理界面中的数据连接L8控件作为目标可复用数据连接控件,将数据连接L8控件拖动到数据库D2对应的数据连接管理界面中,拖动后的代理端120显示页面如图11C所示。数据连接L8控件显示在数据库D2对应的数据连接管理界面中。
响应于将目标可复用数据连接拖动至目标数据库对应的数据连接管理界面的拖动操作,可以将目标可复用数据连接控件对应的数据连接转换为目标数据库对应的可复用数据连接。
通过上述方式可以将不同数据库对应的可复用数据连接进行合理规划,以使每一个数据库对应的可用数据连接集合中都可以包含可复用数据连接以备处理对应数据库的数据访问请求。当接收到数据访问请求后,可以直接调用可复用连接,提高了对象的数据库访问效率。
如图12所示,为本公开提供的数据库访问请求的处理方法的另一流程示意图。在本公开实施例中,基于对象终端110、代理端120与服务器三端的交互,对本公开提供的数据库访问请求的处理方法进行详细的介绍。方法具体包括如下步骤:
步骤1201、由对象终端110向代理端120传输数据访问请求。
数据访问请求可以包含数据库处理语句,例如,select语句。数据访问请求中还可以包含对象身份信息、对象变量数据与数据库信息。对象身份信息指示了对象终端110的身份,例如对象名,对象终端地址等。对象变量数据可以包含系统环境变量与对象自定义变量等。数据库信息指示了对象想要访问的数据库。
步骤1202、当代理端120的连接池中没有连接时,创建到数据库的目标数据连接,并执行步骤1206。
在创建到数据库的目标数据连接时,可以根据数据访问请求中的对象身份信息设置目标数据连接的连接标识信息,根据对象变量数据设置目标数据中的连接环境变量数据。
步骤1203、当代理端120的连接池中有连接时,将对象变量数据与连接环境变量数据的变量名与变量值进行哈希处理,得到定长对象变量数据与定长连接环境变量数据。
将对象变量数据与连接环境变量数据的变量名和变量值进行哈希处理,得到长度固定的整数型变量数据。
步骤1204、代理端120将对象身份信息与连接标识信息进行比对,将定长数据变量数据与定长连接环境变量数据进行比对。
从连接池中的第一个数据连接开始进行比对,如果对象身份信息与数据连接的连接标识信息不一致,则将这个数据连接作为备份,标注为A类连接;如果对象身份信息与数据连接的连接标识信息一致,但是对象变量数据与数据连接的连接环境变量不一致,则将这个数据连接作为备份,表示为B类连接;如果对象身份信息与数据连接的连接标识信息一致,且对象变量数据与数据连接的连接环境变量数据也一致,将这个数据作为C类连接,并执行步骤1205。
步骤1205、代理端120根据比对结果从连接池中确定目标数据连接。
如果在步骤1204中找到了C类连接,那么直接将C类连接确定为目标数据连接;如果遍历完连接池后,没有找到C类连接,但是有B类连接,那么从备份的B类连接中确定目标数据连接,并且利用SET指令将目标数据连接的连接环境变量数据按照对象变量数据进行设置;如果遍历完连接池后,既没有找到C类连接,也没有找到B类连接,那么从备份的A类连接中确定目标数据连接,并且利用COM_CHANGE_USER重置目标数据连接的连接标识信息。
步骤1206、代理端120利用目标数据连接将数据访问请求传输给数据库。
步骤1207、数据库利用目标数据连接将事务处理数据包传输给代理端120。
事务处理数据包中可以包含事务处理状态信息与数据连接状态信息,事务处理状态信息与数据连接状态信息可以利用数据库中的session_track_ schema命令进行检测。事务处理状态信息中包含对以下几个方面的检测:会话状态、系统变量、数据库中的数据、全局标识的变化、事务特性变化与事务状态的变化。数据连接状态信息包含对以下几个方面的检测:对象自定义变量、用于锁定目标数据库或数据表的相关变量、prepare语句与临时表。
步骤1208、代理端120根据事务处理数据包确定目标数据连接是否可以放回连接池。
当目标数据连接存在以下任何一个状态时,目标数据连接不具备放回连接池的条件:
目标数据连接中含有待处理事务与等待执行结果的事务;
目标数据连接中含有未删除的Prepare语句;
目标数据连接中含有用于锁定目标数据库或数据表的相关变量;
目标数据连接中含有临时表。
当目标数据连接中不存在上述任何一个状态时,目标数据连接可以放回连接池。
步骤1209、代理端120将数据访问请求处理结果返回给对象终端110。
通过上述步骤1201-1209,本公开实施例的数据库访问请求的处理方法实现了从连接池中获取目标数据连接,在利用目标数据连接进行数据库访问之后,当目标数据连接满足可复用条件时,不需要等待对象主动断开与数据库的连接,就可以将目标数据连接放回连接池以供其它数据访问请求调用。通过这个过程,可以利用较少的连接处理大量的数据访问请求,提高了连接池中连接的复用率,进而提高了对象的数据库访问效率。
可以理解的是,虽然上述各个流程图中的各个步骤按照箭头的表征依次显示,但是这些步骤并不是必然按照箭头表征的顺序依次执行。除非本实施例中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时间执行完成,而是可以在不同的时间执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,在本公开的各个具体实施方式中,当涉及到需要根据目标对象属性信息或属性信息集合等与目标对象特性相关的数据进行相关处理时,都会先获得目标对象的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关地区的相关法律法规和标准。此外,当本申请实施例需要获取目标对象属性信息时,会通过弹窗或者跳转到确认页面等方式获得目标对象的单独许可或者单独同意,在明确获得目标对象的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的目标对象相关数据。
图13为本公开实施例提供的数据库访问请求的处理装置1300的结构示意图。该数据库访问请求的处理装置1300包括:
第一接收单元1310,用于接收来自目标对象的数据访问请求,获取数据访问请求中包含的对象身份信息、对象变量数据以及目标数据库;
调用单元1320,用于根据对象身份信息以及对象变量数据在可用数据连接集合中调用目标数据连接,可用数据连接集合为连接到目标数据库的数据连接构成的集合;
第二接收单元1330,用于基于目标数据连接向目标数据库发送数据访问请求,并接收目标数据库针对数据访问请求返回的事务处理状态信息;
验证单元1340,用于根据事务处理状态信息对目标数据连接进行复用性验证,得到复用验证结果;
添加单元1350,用于当复用验证结果确认目标数据连接可复用时,将目标数据连接重新添加至可用数据连接集合中以备其他数据访问请求调用。
可选地,调用单元1320具体用于:
当可用数据连接集合是空集时,基于对象身份信息以及对象变量数据建立用于连接目标数据库的目标数据连接;
当可用数据连接集合中包含至少一个数据连接时,根据对象身份信息以及对象变量数据在可用数据连接集合中调用目标数据连接。
可选地,调用单元1320具体用于:
当可用数据连接集合中包含至少一个数据连接,获取每一数据连接的连接标识信息与连接环境变量数据;
根据对象身份信息、对象变量数据以及每一数据连接的连接标识信息与连接环境变量数据在可用数据连接集合包含的至少一个数据连接中确定目标数据连接;
调用目标数据连接。
可选地,调用单元1320具体用于:
根据每一数据连接的连接标识信息和连接环境变量数据与对象身份信息和对象变量数据的比对结果确定每一数据连接的连接类别,连接类别被分为第一类别、第二类别与第三类别,第一类别的数据连接的连接标识信息与对象身份信息一致且连接环境变量数据与对象变量数据一致,第二类别的数据连接的连接标识信息与对象身份信息一致但连接环境变量数据与对象变量数据不一致,第三类别的数据连接的连接标识信息与对象身份信息不一致且连接环境变量数据与对象变量数据不一致;
根据每一数据连接的连接类别,在可用数据连接集合包含的至少一个数据连接中确定目标数据连接。
可选地,调用单元1320具体用于:
当至少一个数据连接中存在第一类别的数据连接,将第一类别的数据连接确定为目标数据连接;
当至少一个数据连接中不存在第一类别的数据连接但存在第二类别的数据连接,将第二类别的数据连接确定为目标数据连接;
当至少一个数据连接中不存在第一类别的数据连接且不存在第二类别的数据连接,将第三类别的数据连接确定为目标数据连接。
可选地,调用单元1320具体用于:
将对象变量数据进行哈希处理得到整数型的定长对象变量数据;
将每一数据连接的连接环境变量数据进行哈希处理得到整数型的定长连接环境变量数据;
根据对象身份信息、定长对象变量数据以及每一数据连接的连接标识信息与定长连接环境变量数据在可用数据连接集合包含的至少一个数据连接中确定目标数据连接。
可选地,事务处理状态信息包括事务标识信息与事务状态变化信息;
验证单元1340具体用于:
基于事务标识信息与事务状态变化信息确定目标数据库对数据访问请求中事务的事务处理结果;
根据事务处理结果确定复用验证结果。
可选地,第二接收单元1330具体用于:
基于目标数据连接向目标数据库发送数据访问请求,并接收目标数据库针对数据访问请求返回的事务处理状态信息与目标数据连接的数据连接状态信息;
验证单元1340具体用于:
根据事务处理状态信息与数据连接状态信息对目标数据连接进行复用性验证,得到复用验证结果。
可选地,验证单元1340具体用于:
从数据连接状态信息中获取目标数据连接中的事务队列信息与目标数据库处理事务过程中产生的待处理变量和语句信息;
根据事务处理状态信息、事务队列信息与待处理变量和语句信息对目标数据连接进行复用性验证,得到复用验证结果。
可选地,调用单元1320具体用于:
当可用数据连接集合是空集时,获取除目标数据库以外的其他数据库对应的可复用数据连接;
基于对象身份信息以及对象变量数据将可复用数据连接转换为目标数据库的目标数据连接。
可选地,数据库访问请求的处理装置1300还包括:
显示单元(未示出),用于显示多个数据库对应的数据连接管理界面,数据连接管理界面包括可复用数据连接控件与不可复用数据连接控件;
响应单元(未示出),用于响应于将目标可复用数据连接控件拖动至目标数据库对应的数据连接管理界面的拖动操作,将目标可复用数据连接控件对应的数据连接转换为目标数据库对应的可复用数据连接,目标可复用数据连接控件为目标数据库以外的其他数据库对应的数据连接管理界面中的可复用数据连接控件。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
参照图14,图14为实现本公开实施例的数据库访问请求的处理方法的对象终端110的部分的结构框图,该对象终端110包括:射频(Radio Frequency,简称RF)电路1410、存储器1415、输入单元1430、显示单元1440、传感器1450、音频电路1460、无线保真(wirelessfidelity,简称WiFi)模块1470、处理器1480、以及电源1490等部件。本领域技术人员可以理解,图14示出的对象终端110结构并不构成对手机或电脑的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
RF电路1410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1480处理;另外,将设计上行的数据发送给基站。
存储器1415可用于存储软件程序以及模块,处理器1480通过运行存储在存储器1415的软件程序以及模块,从而执行终端的各种功能应用以及车道线变化点的识别。
输入单元1430可用于接收输入的数字或字符信息,以及产生与终端的设置以及功能控制有关的键信号输入。具体地,输入单元1430可包括触控面板1431以及其他输入装置1432。
显示单元1440可用于显示输入的信息或提供的信息以及终端的各种菜单。显示单元1440可包括显示面板1441。
音频电路1460、扬声器1461,传声器1462可提供音频接口。
在本实施例中,该终端110所包括的处理器1480可以执行前面实施例的数据库访问请求的处理方法。
本公开实施例的对象终端110包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。本发明实施例可应用于各种场景,包括但不限于数据信息管理等。
图15为实施本公开实施例的数据库访问请求的处理方法的服务器130的部分的结构框图。服务器130可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)1522(例如,一个或一个以上处理器)和存储装置1532,一个或一个以上存储应用程序1542或数据1544的存储介质1530(例如一个或一个以上海量存储装置)。其中,存储装置1532和存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器130中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在服务器130上执行存储介质1530中的一系列指令操作。
服务器130还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如Windows ServerTM,Mac OS XTM,UnixTM ,LinuxTM,FreeBSDTM等等。
服务器130中的中央处理器1522可以用于执行本公开实施例的数据库访问请求的处理方法。
本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行前述各个实施例的数据库访问请求的处理方法。
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序。计算机设备的处理器读取该计算机程序并执行,使得该计算机设备执行实现上述的数据库访问请求的处理方法。
本公开的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“包含”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
应当理解,在本公开中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应了解,在本公开实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
还应了解,本公开实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
以上是对本公开的实施方式的具体说明,但本公开并不局限于上述实施方式,熟悉本领域的技术人员在不违背本公开精神的条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本公开权利要求所限定的范围内。

Claims (13)

1.一种数据库访问请求的处理方法,其特征在于,包括:
接收来自目标对象的数据访问请求,获取所述数据访问请求中包含的对象身份信息、对象变量数据以及目标数据库;
根据所述对象身份信息以及所述对象变量数据在可用数据连接集合中调用目标数据连接,所述可用数据连接集合为连接到所述目标数据库的数据连接构成的集合;
基于所述目标数据连接向所述目标数据库发送所述数据访问请求,并接收所述目标数据库针对所述数据访问请求返回的事务处理状态信息;
所述接收所述目标数据库针对所述数据访问请求返回的事务处理状态信息,包括:接收所述目标数据库针对所述数据访问请求返回的事务处理状态信息与所述目标数据连接的数据连接状态信息;
根据所述事务处理状态信息对所述目标数据连接进行复用性验证,得到复用验证结果;
所述根据所述事务处理状态信息对所述目标数据连接进行复用性验证,得到复用验证结果,包括:从所述事务处理状态信息中获取会话状态检测信息、数据库环境变量检测信息、数据检测信息、全局标识变化检测信息、事务性质变化检测信息与事务状态变化检测信息;从所述数据连接状态信息中获取所述目标数据连接中的事务队列信息与所述目标数据库处理事务过程中产生的待处理变量和语句信息,所述待处理变量和语句信息包含临时表与临时变量、prepare语句和用于锁定所述目标数据库的相关变量;根据所述会话状态检测信息、所述数据库环境变量检测信息、所述数据检测信息、所述全局标识变化检测信息、所述事务性质变化检测信息、所述事务状态变化检测信息、所述事务队列信息与所述待处理变量和语句信息对所述目标数据连接进行复用性验证,得到复用验证结果;
当所述复用验证结果确认所述目标数据连接可复用时,将所述目标数据连接重新添加至所述可用数据连接集合中以备其他数据访问请求调用。
2.根据权利要求1所述的方法,其特征在于,所述根据所述对象身份信息以及所述对象变量数据在可用数据连接集合中调用目标数据连接,包括:
当可用数据连接集合是空集时,基于所述对象身份信息以及所述对象变量数据建立用于连接所述目标数据库的目标数据连接;
当可用数据连接集合中包含至少一个数据连接时,根据所述对象身份信息以及所述对象变量数据在所述可用数据连接集合中调用目标数据连接。
3.根据权利要求2所述的方法,其特征在于,所述当可用数据连接集合中包含至少一个数据连接时,根据所述对象身份信息以及所述对象变量数据在所述可用数据连接集合中调用目标数据连接,包括:
当可用数据连接集合中包含至少一个数据连接,获取每一数据连接的连接标识信息与连接环境变量数据;
根据所述对象身份信息、所述对象变量数据以及所述每一数据连接的连接标识信息与连接环境变量数据在所述可用数据连接集合包含的所述至少一个数据连接中确定目标数据连接;
调用所述目标数据连接。
4.根据权利要求3所述的方法,其特征在于,所述根据所述对象身份信息、所述对象变量数据以及所述每一数据连接的连接标识信息与连接环境变量数据在所述可用数据连接集合包含的所述至少一个数据连接中确定目标数据连接,包括:
根据所述每一数据连接的连接标识信息和连接环境变量数据与所述对象身份信息和所述对象变量数据的比对结果确定所述每一数据连接的连接类别,所述连接类别包括第一类别、第二类别与第三类别,所述第一类别的数据连接的连接标识信息与所述对象身份信息一致且连接环境变量数据与所述对象变量数据一致,所述第二类别的数据连接的连接标识信息与所述对象身份信息一致但连接环境变量数据与所述对象变量数据不一致,所述第三类别的数据连接的连接标识信息与所述对象身份信息不一致且连接环境变量数据与所述对象变量数据不一致;
根据所述每一数据连接的所述连接类别,在所述可用数据连接集合包含的所述至少一个数据连接中确定目标数据连接。
5.根据权利要求4所述的方法,其特征在于,所述根据所述每一数据连接的所述连接类别,在所述可用数据连接集合包含的所述至少一个数据连接中确定目标数据连接,包括:
当所述至少一个数据连接中存在所述第一类别的数据连接,将所述第一类别的数据连接确定为目标数据连接;
当所述至少一个数据连接中不存在所述第一类别的数据连接但存在所述第二类别的数据连接,将所述第二类别的数据连接确定为目标数据连接;
当所述至少一个数据连接中不存在所述第一类别的数据连接且不存在所述第二类别的数据连接,将所述第三类别的数据连接确定为目标数据连接。
6.根据权利要求3所述的方法,其特征在于,所述根据所述对象身份信息、所述对象变量数据以及所述每一数据连接的连接标识信息与连接环境变量数据在所述可用数据连接集合包含的所述至少一个数据连接中确定目标数据连接,包括:
将所述对象变量数据进行哈希处理得到整数型的定长对象变量数据;
将所述每一数据连接的所述连接环境变量数据进行哈希处理得到整数型的定长连接环境变量数据;
根据所述对象身份信息、所述定长对象变量数据以及所述每一数据连接的连接标识信息与所述定长连接环境变量数据在所述可用数据连接集合包含的所述至少一个数据连接中确定目标数据连接。
7.根据权利要求1所述的方法,其特征在于,所述事务处理状态信息包括事务标识信息与事务状态变化信息;所述根据所述事务处理状态信息对所述目标数据连接进行复用性验证,得到复用验证结果,包括:
基于所述事务标识信息与所述事务状态变化信息确定所述目标数据库对所述数据访问请求中事务的事务处理结果;
根据所述事务处理结果确定复用验证结果。
8.根据权利要求2所述的方法,其特征在于,所述当可用数据连接集合是空集时,基于所述对象身份信息以及所述对象变量数据建立用于连接所述目标数据库的目标数据连接,包括:
当可用数据连接集合是空集时,获取除所述目标数据库以外的其他数据库对应的可复用数据连接;
基于所述对象身份信息以及所述对象变量数据将所述可复用数据连接转换为所述目标数据库的目标数据连接。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
显示多个数据库对应的数据连接管理界面,所述数据连接管理界面包括可复用数据连接控件与不可复用数据连接控件;
响应于将目标可复用数据连接控件拖动至所述目标数据库对应的数据连接管理界面的拖动操作,将所述目标可复用数据连接控件对应的数据连接转换为所述目标数据库对应的可复用数据连接,所述目标可复用数据连接控件为所述目标数据库以外的其他数据库对应的数据连接管理界面中的可复用数据连接控件。
10.一种数据库访问请求的处理装置,其特征在于,包括:
第一接收单元,用于接收来自目标对象的数据访问请求,获取所述数据访问请求中包含的对象身份信息、对象变量数据以及目标数据库;
调用单元,用于根据所述对象身份信息以及所述对象变量数据在可用数据连接集合中调用目标数据连接,所述可用数据连接集合为连接到所述目标数据库的数据连接构成的集合;
第二接收单元,用于基于所述目标数据连接向所述目标数据库发送所述数据访问请求,并接收所述目标数据库针对所述数据访问请求返回的事务处理状态信息;
所述接收所述目标数据库针对所述数据访问请求返回的事务处理状态信息,包括:接收所述目标数据库针对所述数据访问请求返回的事务处理状态信息与所述目标数据连接的数据连接状态信息
验证单元,用于根据所述事务处理状态信息对所述目标数据连接进行复用性验证,得到复用验证结果;
所述根据所述事务处理状态信息对所述目标数据连接进行复用性验证,得到复用验证结果,包括:从所述事务处理状态信息中获取会话状态检测信息、数据库环境变量检测信息、数据检测信息、全局标识变化检测信息、事务性质变化检测信息与事务状态变化检测信息;从所述数据连接状态信息中获取所述目标数据连接中的事务队列信息与所述目标数据库处理事务过程中产生的待处理变量和语句信息,所述待处理变量和语句信息包含临时表与临时变量、prepare语句和用于锁定所述目标数据库的相关变量;根据所述会话状态检测信息、所述数据库环境变量检测信息、所述数据检测信息、所述全局标识变化检测信息、所述事务性质变化检测信息、所述事务状态变化检测信息、所述事务队列信息与所述待处理变量和语句信息对所述目标数据连接进行复用性验证,得到复用验证结果;
添加单元,用于当所述复用验证结果确认所述目标数据连接可复用时,将所述目标数据连接重新添加至所述可用数据连接集合中以备其他数据访问请求调用。
11.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1至9任意一项所述的数据库访问请求的处理方法。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现根据权利要求1至9任意一项所述的数据库访问请求的处理方法。
13.一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器读取并执行,使得该计算机设备执行根据权利要求1至9任意一项所述的数据库访问请求的处理方法。
CN202410037079.9A 2024-01-10 2024-01-10 数据库访问请求的处理方法、装置、电子设备和存储介质 Active CN117539949B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410037079.9A CN117539949B (zh) 2024-01-10 2024-01-10 数据库访问请求的处理方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410037079.9A CN117539949B (zh) 2024-01-10 2024-01-10 数据库访问请求的处理方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN117539949A CN117539949A (zh) 2024-02-09
CN117539949B true CN117539949B (zh) 2024-04-12

Family

ID=89792395

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410037079.9A Active CN117539949B (zh) 2024-01-10 2024-01-10 数据库访问请求的处理方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN117539949B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810203A (zh) * 2012-11-13 2014-05-21 深圳市腾讯计算机系统有限公司 一种数据库管理系统连接复用方法及装置
CN104142868A (zh) * 2013-05-10 2014-11-12 腾讯科技(深圳)有限公司 建立连接的方法及装置
CN105677693A (zh) * 2015-09-18 2016-06-15 联动优势科技有限公司 一种访问数据库的方法及装置
CN110502560A (zh) * 2019-08-13 2019-11-26 威富通科技有限公司 一种数据库连接参数封装的方法及服务器
CN111309785A (zh) * 2020-02-14 2020-06-19 广州极晟网络技术有限公司 基于Spring框架的数据库访问方法、装置、计算机设备和介质
CN116662426A (zh) * 2023-05-08 2023-08-29 北京奥星贝斯科技有限公司 数据库连接的建立方法、装置、设备及介质
CN116680291A (zh) * 2023-06-15 2023-09-01 中国建设银行股份有限公司 数据检核方法、装置、电子设备及存储介质
CN116737825A (zh) * 2023-05-15 2023-09-12 中国建设银行股份有限公司 异构数据库的操作处理方法、装置、电子设备及存储介质
CN117131545A (zh) * 2023-01-12 2023-11-28 北京水滴科技集团有限公司 数据处理方法及装置、存储介质、终端

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810203A (zh) * 2012-11-13 2014-05-21 深圳市腾讯计算机系统有限公司 一种数据库管理系统连接复用方法及装置
CN104142868A (zh) * 2013-05-10 2014-11-12 腾讯科技(深圳)有限公司 建立连接的方法及装置
CN105677693A (zh) * 2015-09-18 2016-06-15 联动优势科技有限公司 一种访问数据库的方法及装置
CN110502560A (zh) * 2019-08-13 2019-11-26 威富通科技有限公司 一种数据库连接参数封装的方法及服务器
CN111309785A (zh) * 2020-02-14 2020-06-19 广州极晟网络技术有限公司 基于Spring框架的数据库访问方法、装置、计算机设备和介质
CN117131545A (zh) * 2023-01-12 2023-11-28 北京水滴科技集团有限公司 数据处理方法及装置、存储介质、终端
CN116662426A (zh) * 2023-05-08 2023-08-29 北京奥星贝斯科技有限公司 数据库连接的建立方法、装置、设备及介质
CN116737825A (zh) * 2023-05-15 2023-09-12 中国建设银行股份有限公司 异构数据库的操作处理方法、装置、电子设备及存储介质
CN116680291A (zh) * 2023-06-15 2023-09-01 中国建设银行股份有限公司 数据检核方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN117539949A (zh) 2024-02-09

Similar Documents

Publication Publication Date Title
WO2017186092A1 (zh) 网络切片的选择方法及装置
US11646939B2 (en) Network function NF management method and NF management device
EP3247080B1 (en) Certificate management method, device and system
US20230254146A1 (en) Cybersecurity guard for core network elements
US20230283470A1 (en) Service Request Handling
CN111431818B (zh) 跨域请求的流量分配方法、装置、存储介质及计算机设备
CN110727738A (zh) 基于数据分片的全局路由系统、电子设备及存储介质
US10268532B2 (en) Application message processing system, method, and application device
US11599673B2 (en) Ascertaining network devices used with anonymous identifiers
CN117539949B (zh) 数据库访问请求的处理方法、装置、电子设备和存储介质
CN111651425B (zh) 数据集市的数据提取方法、装置、终端及存储介质
US20220350748A1 (en) Consistent hashing for communication devices
CN112566054B (zh) 一种优化消息交互过程的方法及系统
CN114866970A (zh) 策略控制方法、系统和相关设备
US10742802B2 (en) Methods and devices for verifying a communication number
CN113449042A (zh) 数据自动分库方法及装置
CN113285994A (zh) 消息发送方法、装置、服务器及存储介质
WO2023179709A1 (zh) 信息处理方法、装置、通信设备及可读存储介质
US10326595B1 (en) Load balancing probabilistic robot detection
CN112039729B (zh) 设备识别方法、服务器、电子设备和存储介质
WO2023173796A1 (zh) 通信管理方法、装置和系统
WO2024041470A1 (zh) 系统信息消息接收方法、发送方法、终端及网络侧设备
CN105930496A (zh) 数据查询方法及系统
WO2015131668A1 (zh) 业务的执行处理、执行方法及装置
CN115297020A (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
GR01 Patent grant
GR01 Patent grant