CN114691728A - 一种数据库访问方法、装置及电子设备 - Google Patents

一种数据库访问方法、装置及电子设备 Download PDF

Info

Publication number
CN114691728A
CN114691728A CN202011639182.9A CN202011639182A CN114691728A CN 114691728 A CN114691728 A CN 114691728A CN 202011639182 A CN202011639182 A CN 202011639182A CN 114691728 A CN114691728 A CN 114691728A
Authority
CN
China
Prior art keywords
data
query request
request
query
access request
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
CN202011639182.9A
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.)
China Mobile Communications Group Co Ltd
China Mobile Group Fujian Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Fujian 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 China Mobile Communications Group Co Ltd, China Mobile Group Fujian Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202011639182.9A priority Critical patent/CN114691728A/zh
Publication of CN114691728A publication Critical patent/CN114691728A/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
    • 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/2453Query optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种数据库访问方法、装置及电子设备,该方法包括:对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型;在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;根据所述查询请求的效率值,确定执行所述查询请求的优先级。通过本发明实施例,提升到对数据库进行查询请求的访问效率。

Description

一种数据库访问方法、装置及电子设备
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据库访问方法、装置及电子设备。
背景技术
随着互联网的普及,面向互联网的应用日渐增多,在互联网的访问压力下,软件系统经常会遇到突发性的大并发访问。应用对大并发的访问经常超过应用系统本身的处理能力,从而导致全系统的变慢或堵塞。现有的方案一般是将应用部署到Docker容器中,使其适应外部请求量自动弹性伸缩,并且在数据库访问过程(主要是读请求)直接使用缓存数据,从而减少爆发流量对系统造成的冲击。随着互联网技术发展和流量爆发式增长,运营商系统的数据量和并发数急剧增加,现有技术将传统的应用直接使用在Docker体系中,以解决应用层的并发压力问题,但是随着Docker容器规模的扩大会带来数据库连接数的暴涨,很快访问压力将超过数据库的负荷,数据库的性能问题日益突出。
针对降低数据库访问压力的迫切目标,有的应用系统在数据库访问过程引入缓存技术,但是只使用应用本地内存的缓存方式受到应用本身内存的制约无法存放量级稍大的目标数据,即使在很多应用系统中引入了二级缓存,但是面对海量数据也是无能为力,存在缓存命中率不足的致命缺陷,使数据库访问效率较低。
发明内容
本发明实施例的目的是提供一种数据库访问方法、装置及电子设备,以解决数据库访问效率较低的问题。
为了解决上述技术问题,本发明实施例是这样实现的:
第一方面,本发明实施例提供了一种数据库访问方法,包括:
对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型;
在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;其中,所述第一模型为,以操作日志中的历史查询请求为样本,以所述历史查询请求的效率值为标签,进行训练得到的;
根据所述查询请求的效率值,确定执行所述查询请求的优先级。
第二方面,本发明实施例提供了一种数据库访问装置,包括:
数据服务模块,用于对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型;
数据查询模块,用于在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;其中,所述第一模型为,以操作日志中的历史查询请求为样本,以所述历史查询请求的效率值为标签,进行训练得到的;
所述数据查询模块,还用于根据所述查询请求的效率值,确定执行所述查询请求的优先级。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如第一方面所述的数据库访问方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的数据库访问方法步骤。
由以上本发明实施例提供的技术方案可见,本发明实施例通过对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型;在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;根据所述查询请求的效率值,确定执行所述查询请求的优先级。通过本发明实施例,提升到对数据库进行查询请求的访问效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据库访问方法的一种流程示意图;
图2为本发是实施例提供的数据库访问系统的结果示意图;
图3为本发明实施例提供的数据库访问方法的另一种流程示意图;
图4为本发明实施例提供的数据库访问装置的模块组成示意图;
图5为本发明实施例提供的电子设备的结构示意图。
具体实施方式
本发明实施例提供了一种数据库访问方法、装置及电子设备。
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
如图1、图2所示,本发明实施例提供一种数据库访问方法,该方法的执行主体可以为数据库访问系统。该方法具体可以包括以下步骤:
步骤S010、对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型。
如图2所示,本发明实施例的数据库访问系统200根据功能划分,可以包括数据服务器模块、数据更新模块、数据查询模块、深度学习算法模块、配置与存储模块和连接池调节模块。
所述数据服务器模块提供数据库代理访问,接管所有数据访问请求,收敛数据库访问过程。此模块是数据库访问系统200的最前端,与各应用的客户端相连接。应用不直接连接数据库,而是将数据访问请求发送给数据服务模块,数据访问请求经由数据服务模块转发到其它模块进行处理。
所述数据服务模块可连接配置与存储模块,从所述配置与存储模块获取配置信息,设置访问的控制逻辑,例如,控制数据库访问的客户端IP数量,控制数据库访问的频率等。
所述配置与存储模块用于完成整个系统200运行过程中配置类数据的存放和各种数据的存储。配置类数据包括访问控制逻辑配置、数据源配置、数据库连接配置、启发式规则配置、深度神经网络进行模型训练的参数配置等系统全局配置。存储内容有训练后的模型、操作日志、连接池日志、业务日志、异常信息日志等内容。
数据服务模块需要对接收到的数据访问请求进行识别,根据识别得到的不同的数据类型,将该数据访问请求发送给对应的其它模块进行处理。具体的数据类型和识别方法,可根据实际的需要进行设定,可以根据所述数据访问请求的语句类型进行识别,所述数据类型可以包括:查询请求、更新操作、事务类操作等。
若数据服务模块识别得到所述数据访问请求为查询请求,则将所述查询请求转发给数据查询模块;而若识别得到所述数据访问请求为数据更新操作和事务类操作,则将该数据访问请求发转发给数据更新模块。
步骤S020、在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;其中,所述第一模型为,以操作日志中的历史查询请求为样本,以所述历史查询请求的效率值为标签,进行训练得到的。
数据查询模块在接收到由数据服务模块发送的查询请求后,将利用训练好的第一模型得到所述查询请求的效率值。所述第一模型由深度学习算法模块进行预先训练后得到。
所述深度学习算法模块通过数据采集、预处理、特征提取、模型训练和模型预测等一整套深度学习算法相关的闭环流程,为所述数据库访问系统200训练可用于优化数据访问的相关模型,包括用于预测各查询请求的效率值的第一模型。模型的训练过程可采用离线模式,将所需数据采集后导入到相关模块进行训练。训练好的模型将存储在配置与存储模块中,以供其它模块调用,训练后的模型在系统200运行中采用在线模式,实时对数据进行分析预测。
在一种实现方式中,深度学习算法模块采用深度神经网络模型(Deep NeuralNetworks,DNN)来构建所述第一模型。具体的训练步骤如下所示:
A1.导入离线落盘的数据操作日志作为训练语料,所述数据操作日志可用于记录对数据库发起各类操作的信息,至少包括了对数据库发起查询请求的信息。对所述数据操作日志执行清洗并解析文本,获得历史查询请求和对应的执行时间。
A2.采用预设的自然语言处理方法,得到用于表征所述历史查询请求的特征向量,可采用Antlr4(ANother Tool for Language Recognition)工具逐个解析步骤A1中获得的各历史查询请求的语法树,其后按照深度优先遍历该语法树,采用独热编码对各个元素编码,将语法树表征为一个特征向量。由此所有的历史查询请求按序可形成了一个向量矩阵。
A3.从配置与存储模块中读取预先设置的效率值划分标准,根据历史查询请求的执行时间,按照所述效率值划分标准,得到效率值。所述效率值划分标准可以为预先设置的时间阈值,按照所设置的时间阈值,得到执行时间对应的效率值。例如,若仅设置一个用于划分慢查询和快查询的时间阈值,则将执行时间超过所述时间阈值的历史查询请求的效率值标记为慢查询1,而将执行时间未超过所述时间阈值的历史查询请求的效率值标记为快查询0。以此,形成各历史查询请求的标签。
A4.使用A1,A2,A3步骤已预处理好的语料,对深度神经网络模型进行训练。所述深度神经网络模型可采用一个输入层,一个隐藏层,一个输出的多层感知器(MultilayerPerceptron,MLP),激活函数使用sigmoid函数。将训练好的第一模型存储于配置与存储模块中,以便所述数据查询模块后续调用。
所述数据查询模块在接收到查询请求时,采用如上述步骤A2所述的自然语言处理方法,对所述查询请求进行解析,得到所述查询请求的特征向量。将所述特征向量输入到所述第一模型中,从而输出得到所述查询请求的效率值。
步骤S021、根据所述查询请求的效率值,确定执行所述查询请求的优先级。
数据查询模块根据得到的各查询请求的效率值,通过预设的规则,确定各查询请求的优先级,从而根据该优先级对各查询请求进行智能分析和调度,从而确定向数据库发起所述查询请求的时间。还可以进一步结合启发式规则。这种方式结合语义对未知的查询请求进行评估能够控制执行的优先级,防止低效率查询请求在业务繁忙时长时间占用连接,拖垮整个数据库。具体的执行步骤如下所示:
B1.将查询请求传递给深度学习算法模块,由深度学习算法模块使用训练后的第一模型对该查询请求的效率值进行预测,返回预测结果,1为慢查询,0为快查询。
B2.若返回的预测结果为0,则直接执行;若返回的预测结果为1,判断是否符合延缓执行的启发式规则,规则配置内容为库名,表名,连接阈值,延迟时间。即该规则为指定库或指定库的指定表在已用连接比例达到多少时,延迟多久执行该查询。
B3.若符合所述启发式规则,则判断当前连接池的资源是否可立即执行,满足则立即执行,否则延迟执行,若不符合所述启发式规则,可根据全局配置立即执行或延迟指定时间执行。此启发式规则与所应用的业务系统强相关,需根据实际需求制定。
所述数据查询模块具有缓存扩展功能,可连接配置与存储模块做本地缓存和分布式全局缓存。模块的本地缓存用于存储全局配置类数据,由于存储多为配置数据,可采用语句级别的缓存,用MD5函数把查询语句转化为唯一标识符,按照本方案的本地缓存架构可以适配guava、ehcache等缓存实现。可支持分布式全局环境,采用Redis、Memcached等产品实现,存储量级较大的静态数据,以提供缓存命中率,从而构建客户端本地缓存→数据服务本地缓存→分布式全局缓存为路径的多级缓存。多级缓存的协作将大多数的访问隔离于数据库之外,从而实现保护数据库并且加速数据访问的目的。
由以上本发明实施例提供的技术方案可见,本发明实施例通过对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型;在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;根据所述查询请求的效率值,确定执行所述查询请求的优先级。通过本发明实施例,提升到对数据库进行查询请求的访问效率。
进一步的,如图3所示,在上述步骤S01后,所述方法还包括:
步骤S030、在所述数据访问请求的数据类型为针对待操作数据的更新操作的情况下,将所述更新操作保存到缓存中,并开启计时器;
在所述数据服务模块识别到数据访问请求的数据类型为更新操作和事务类操作时,则将所述更新操作和事务类操作发送给数据更新模块。所述事务类操作包括查询操作和控制操作。
为了避免由于失败交易对数据库造成的冲击,并减少对数据库的连接所占用的时间,本发明实施例的数据更新模块采用了延迟写入技术。数据更新模块在接收到更新操作时,将暂时不执行所述更新操作,而是将所述更新操作进行缓存,同时,为所述更新操作所针对的待操作数据设置一个计时器,并设置相应的标记DT=0。
进一步的,所述方法还包括:
步骤S040、在所述数据访问请求的数据类型为所述针对待操作数据的事务类操作的情况下,查找缓存中是否存在与所述待操作数据对应的更新操作;
数据更新模块在接收到事务类操作时,将先根据所述事务类操作所针对的待操作数据,在缓存中查找是否存在与所述待操作数据对应的更新操作,具体可以通过查看所述待操作数据的标记DT是否为0。
步骤S041、若存在与所述待操作数据对应的更新操作,则根据所述更新操作,执行所述事务类操作。
在缓存中查找到与所述待操作数据对应的更新操作的情况下,若所述事务类操作为查询操作,则先将所述更新操作提交到数据库,对所述待操作数据执行该更新操作,并将该待操作数据的标记DT变更为1。然后,再对更新后的待操作数据执行所述查询操作。而若所述事务类操作为提交操作,则将所述更新操作提交到数据库,执行所述更新操作,并使DT=1。若所述事务类操作为回滚操作,在所述DT=0时,直接放弃所述更新操作,将所述更新操作从缓存中删除。
进一步的,所述方法还包括:
步骤S042、若不存在与所述待操作数据对应的更新操作,则将所述查询操作转化为查询请求。
而在缓存中未找到与所述待操作数据对应的更新操作的情况下,则直接向所述数据库发起所述事务类操作。
若所述事务类操作为回滚操作,则在所述DT=1时,直接向数据库发起回滚操作。
若所述事务类操作为查询操作,则将所述查询操作转化为查询请求,并发送给数据查询模块,由数据查询模块根据第一模块,确定执行该查询请求的优先级。
步骤S031、若在所述计时器的时间达到预设时间阈值之前,未接收到针对所述待操作数据的事务类操作,则将所述更新操作清除。
若在所述计时器的时间达到所述待操作数据对应的时间阈值之前,数据更新模块未接收到与所述更新操作相关的事务类操作,则等同于接收到了回滚操作,放弃所述更新操作,将所述更新操作从缓存中删除。并可将超时情况记录以超进日志的形式进行记录。
通过采用延迟写入技术一方面可以避免失败交易对数据库造成的冲击,另外还可以大幅度减少一个事务会话时间内对数据库连接的占用时间。以普通移动业务办理为例,一次500毫秒的交易,在采用延迟写入技术改进以后,真正获取连接并开始操作数据库的时间只有50毫秒左右,因此,理论上可以减少90%的对数据库连接的占用时间,从而极大改进连接的利用效率。
由以上本发明实施例提供的技术方案可见,本发明实施例通过在所述数据访问请求的数据类型为针对待操作数据的更新操作的情况下,将所述更新操作保存到缓存中,并开启计时器;在所述数据访问请求的数据类型为所述针对待操作数据的事务类操作的情况下,查找缓存中是否存在与所述待操作数据对应的更新操作;若存在与所述待操作数据对应的更新操作,则根据所述更新操作,执行所述事务类操作;若在所述计时器的时间达到预设时间阈值之前,未接收到针对所述待操作数据的事务类操作,则将所述更新操作清除。通过本发明实施例,提升到从而减少了对数据库的连接的占用率,改进了对连接的利用效率,提升了数据库的访问效率。
进一步的,所述方法还包括:
步骤S050、获取当前周期内的业务日志,并根据预置的第二模型,得到下一周期内连接池的连接数量的预测值;其中,所述第二模型为以历史周期的业务日志的特征信息为样本,以所述历史周期的下一周期的连接池的连接数量为标签,进行训练后得到的。
数据库访问系统通过连接池与各数据库相连。现有的连接池的配置策略大多是静态的且提前预设的,连接的创建与释放也是采用的固定方式,当应用系统功能复杂,业务内容变化频繁时,这种仅基于当前信息的连接池难以应对业务级别的并发突增。
本发明实施例通过连接池调节模块能够自适应得对连接池中的连接数量进行调节,通过收集当前周期内的业务日志,通过预先训练的第二模型,可以得到下一周期内连接池中连接数量的预测值。
所述第二模型可以由深度学习算法模块训练得到,所述第二模型可采用长短时神经网络(Long Short-Term Memory,LSTM)来进行构建。所述第二模型的训练过程举例如下:
C1.导入离线落盘的业务日志和连接池日志,所述业务日志用于记录连接的各应用发起的数据访问请求的记录,而所述连接池日志则用于记录系统与各数据库的连接数量的记录。若未记录连接池日志,则需要通过系统的数据访问记录连接池日志,使用系统一段时间以收集所述连接池日志。
C2.对业务日志采用预设的自然语言处理方法,清洗解析业务日志的文本,使用分词工具对业务日志的文本内容进行分词、去停用词等预处理,可采用开源工具word2vec训练词向量模型,向量维度设为200维,使用词包模型进行训练,将预训练的词向量模型存储在配置与存储模块中。
C3.按照预设周期,将各周期内的业务日志集合为一个业务日志的文本,并打上时间标记。清洗并解析连接池日志,获取各数据库在单位周期内连接池中的连接数量,打上同样的时间标记。所述单位周期内连接池中的连接数量,可以根据实际的设置进行计算,例如,可以采用单位周期内连接池中连接数量的最大值,或者单位周期内连接池中连接数量的平均值等。将时间标记为周期T+1的连接池数量作为时间标记为周期T的业务日志的标签,形成训练样本。
C4.对训练样本的业务日志的文本进行特征提取,提取出业务信息的特征信息,所述特征信息包括:文本特征信息和时间特征信息。首先利用文档主题生成模型(LDA)逐个提取业务日志的文本的N个主题词(W1,W2,W3,…,WN),使用C2中已预训练的词向量模型将N个主题词分别转换为词向量(vec1,vec2,vec3,…,vec200),将向量首尾拼接,形成N*200维的主题向量Vvec(v1,v2,v3,…,vN*200)作为文本特征信息。其后提取时间信息特征对应的向量Tvec,时间特征可以用5位数值表示,分别表示月份、日、小时、分钟、秒,并对这5位特征分别进行归一化,并与文本特征信息进行拼接,形成时间-文本向量TV(Tvec,Vvec)。由此可将所有的训练样本形成了训练向量矩阵。
S5.使用训练向量矩阵训练LSTM模型,可设置LSTM隐藏层结点数为100,学习算法采用随机梯度下降,将训练好的第二模型保存在配置与存储模块,以方便其它模块调用。
在系统运行时,使用非侵入方式采集从应用中获取当前周期的业务日志,并采用分词、去停用词、提取主题词和与C4相同的特征信息提取方法形成时间-文本向量,使用已训练的第二模块预测下一周期连接池的连接数量的预测值,并传递给连接池调节模块。
步骤S051、根据所述下一周期内连接池的连接数量的预测值对所述连接池进行调整。
连接池调节模块收到深度学习算法模块传递来的下一周期连接池的连接数量的预测值,以此为依据来主动对当前连接池连接数量进行调整,以提前应对可能到来的数据访问量突变。若连接数量的预测值已超过最大连接数量,则采用最大连接数量。
由以上本发明实施例提供的技术方案可见,本发明实施例通过获取当前周期内的业务日志,并根据预置的第二模型,得到下一周期内连接池的需求数量;根据所述下一周期内连接池的需求数量对所述连接池进行调整。通过本发明实施例,提升到提前感知业务信息,实现连接池对环境变化的自适应,应对突发的业务变化,提升系统整体稳定性。
对应上述实施例提供的数据库访问方法,基于相同的技术构思,本发明实施例还提供了一种数据库访问装置,图4为本发明实施例提供的数据库访问装置的模块组成示意图,该数据库访问装置用于执行图1至图3描述的数据库访问方法,如图4所示,该数据库访问装置包括:数据服务模块401和数据查询模块402。
所述数据服务模块401用于对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型;所述数据查询模块402用于在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;其中,所述第一模型为,以操作日志中的历史查询请求为样本,以所述历史查询请求的效率值为标签,进行训练得到的;所述数据查询模块402还用于根据所述查询请求的效率值,确定执行所述查询请求的优先级。
由以上本发明实施例提供的技术方案可见,本发明实施例通过对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型;在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;根据所述查询请求的效率值,确定执行所述查询请求的优先级。通过本发明实施例,提升到对数据库进行查询请求的访问效率。
进一步的,所述装置还包括:数据更新模块,用于执行:
在所述数据访问请求的数据类型为针对待操作数据的更新操作的情况下,将所述更新操作保存到缓存中,并开启计时器;
若在所述计时器的时间达到预设时间阈值之前,未接收到针对所述待操作数据的事务类操作,则将所述更新操作清除。
进一步的,所述数据更新模块还用于执行:
在所述数据访问请求的数据类型为所述针对待操作数据的事务类操作的情况下,查找缓存中是否存在与所述待操作数据对应的更新操作;
若存在与所述待操作数据对应的更新操作,则根据所述更新操作,执行所述事务类操作。
进一步的,所述数据更新模块还用于执行:
若不存在与所述待操作数据对应的更新操作,则将所述查询操作转化为查询请求。
由以上本发明实施例提供的技术方案可见,本发明实施例通过在所述数据访问请求的数据类型为针对待操作数据的更新操作的情况下,将所述更新操作保存到缓存中,并开启计时器;在所述数据访问请求的数据类型为所述针对待操作数据的事务类操作的情况下,查找缓存中是否存在与所述待操作数据对应的更新操作;若存在与所述待操作数据对应的更新操作,则根据所述更新操作,执行所述事务类操作;若在所述计时器的时间达到预设时间阈值之前,未接收到针对所述待操作数据的事务类操作,则将所述更新操作清除。通过本发明实施例,提升到从而减少了对数据库的连接的占用率,改进了对连接的利用效率,提升了数据库的访问效率。
进一步的,所述装置还包括:连接池调节模块,用于执行:
获取当前周期内的业务日志,并根据预置的第二模型,得到下一周期内连接池的需求数量;其中,所述第二模型为以历史周期的业务日志的特征信息为样本,以所述历史周期的下一周期的连接池的连接数量为标签,进行训练后得到的;
根据所述下一周期内连接池的需求数量对所述连接池进行调整。
由以上本发明实施例提供的技术方案可见,本发明实施例通过获取当前周期内的业务日志,并根据预置的第二模型,得到下一周期内连接池的需求数量;根据所述下一周期内连接池的需求数量对所述连接池进行调整。通过本发明实施例,提升到提前感知业务信息,实现连接池对环境变化的自适应,应对突发的业务变化,提升系统整体稳定性。
本发明实施例提供的数据库访问装置能够实现上述数据库访问方法对应的实施例中的各个过程,为避免重复,这里不再赘述。
需要说明的是,本发明实施例提供的数据库访问装置与本发明实施例提供的数据库访问方法基于同一发明构思,因此该实施例的具体实施可以参见前述数据库访问方法的实施,重复之处不再赘述。
对应上述实施例提供的数据库访问方法,基于相同的技术构思,本发明实施例还提供了一种电子设备,该电子设备用于执行上述的数据库访问方法,图5为实现本发明各个实施例的一种电子设备的结构示意图,如图5所示。电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器501和存储器502,存储器502中可以存储有一个或一个以上存储应用程序或数据。其中,存储器502可以是短暂存储或持久存储。存储在存储器502的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对电子设备中的一系列计算机可执行指令。更进一步地,处理器501可以设置为与存储器502通信,在电子设备上执行存储器502中的一系列计算机可执行指令。电子设备还可以包括一个或一个以上电源503,一个或一个以上有线或无线网络接口504,一个或一个以上输入输出接口505,一个或一个以上键盘506。
具体在本实施例中,电子设备包括有处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现以下方法步骤:
对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型;
在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;其中,所述第一模型为,以操作日志中的历史查询请求为样本,以所述历史查询请求的效率值为标签,进行训练得到的;
根据所述查询请求的效率值,确定执行所述查询请求的优先级。
本申请实施例还提供一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现以下方法步骤:
对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型;
在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;其中,所述第一模型为,以操作日志中的历史查询请求为样本,以所述历史查询请求的效率值为标签,进行训练得到的;
根据所述查询请求的效率值,确定执行所述查询请求的优先级。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、装置或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据库访问方法,其特征在于,所述方法包括:
对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型;
在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;其中,所述第一模型为,以操作日志中的历史查询请求为样本,以所述历史查询请求的效率值为标签,进行训练得到的;
根据所述查询请求的效率值,确定执行所述查询请求的优先级。
2.根据权利要求1所述的方法,其特征在于,在对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型之后,所述方法还包括:
在所述数据访问请求的数据类型为针对待操作数据的更新操作的情况下,将所述更新操作保存到缓存中,并开启计时器;
若在所述计时器的时间达到预设时间阈值之前,未接收到针对所述待操作数据的事务类操作,则将所述更新操作清除。
3.根据权利要求2所述的方法,其特征在于,在对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型之后,所述方法还包括:
在所述数据访问请求的数据类型为所述针对待操作数据的事务类操作的情况下,查找缓存中是否存在与所述待操作数据对应的更新操作;
若存在与所述待操作数据对应的更新操作,则根据所述更新操作,执行所述事务类操作。
4.根据权利要求3所述的方法,其特征在于,在所述事务类操作为查询操作的情况下,在查找缓存中是否存在与所述待操作数据对应的更新操作的步骤后,所述方法还包括:
若不存在与所述待操作数据对应的更新操作,则将所述查询操作转化为查询请求。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取当前周期内的业务日志,并根据预置的第二模型,得到下一周期内连接池的需求数量;其中,所述第二模型为以历史周期的业务日志的特征信息为样本,以所述历史周期的下一周期的连接池的连接数量为标签,进行训练后得到的;
根据所述下一周期内连接池的需求数量对所述连接池进行调整。
6.根据权利要求5所述的方法,其特征在于,所述特征信息包括:文本特征信息和时间特征信息。
7.一种数据库访问装置,其特征在于,所述装置包括:
数据服务模块,用于对接收到的数据访问请求进行识别,得到所述数据访问请求的数据类型;
数据查询模块,用于在所述数据访问请求的数据类型为查询请求的情况下,根据预设的第一模型,得到所述查询请求的效率值,所述效率值用于表征执行所述查询请求所需要的执行时间;其中,所述第一模型为,以操作日志中的历史查询请求为样本,以所述历史查询请求的效率值为标签,进行训练得到的;
所述数据查询模块,还用于根据所述查询请求的效率值,确定执行所述查询请求的优先级。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:数据更新模块,用于执行:
在所述数据访问请求的数据类型为针对待操作数据的更新操作的情况下,将所述更新操作保存到缓存中,并开启计时器;
若在所述计时器的时间达到预设时间阈值之前,未接收到针对所述待操作数据的事务类操作,则将所述更新操作清除。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1-6任一项所述的数据库访问方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的数据库访问方法步骤。
CN202011639182.9A 2020-12-31 2020-12-31 一种数据库访问方法、装置及电子设备 Pending CN114691728A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011639182.9A CN114691728A (zh) 2020-12-31 2020-12-31 一种数据库访问方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011639182.9A CN114691728A (zh) 2020-12-31 2020-12-31 一种数据库访问方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN114691728A true CN114691728A (zh) 2022-07-01

Family

ID=82136047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011639182.9A Pending CN114691728A (zh) 2020-12-31 2020-12-31 一种数据库访问方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN114691728A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117668003A (zh) * 2024-02-01 2024-03-08 福建省华大数码科技有限公司 实现数据库中集合数据类型的数据处理方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117668003A (zh) * 2024-02-01 2024-03-08 福建省华大数码科技有限公司 实现数据库中集合数据类型的数据处理方法及系统
CN117668003B (zh) * 2024-02-01 2024-05-03 福建省华大数码科技有限公司 实现数据库中集合数据类型的数据处理方法及系统

Similar Documents

Publication Publication Date Title
CN106897334B (zh) 一种问题推送方法和设备
US9916368B2 (en) Non-exclusionary search within in-memory databases
CN110795532A (zh) 一种语音信息的处理方法、装置、智能终端以及存储介质
CN106844640A (zh) 一种网页数据分析处理方法
US11775894B2 (en) Intelligent routing framework
CN112653798A (zh) 智能客服语音应答方法、装置、计算机设备及存储介质
EP4060517A1 (en) System and method for designing artificial intelligence (ai) based hierarchical multi-conversation system
CN114691728A (zh) 一种数据库访问方法、装置及电子设备
CN112527969B (zh) 增量意图聚类方法、装置、设备及存储介质
CN113434123A (zh) 一种业务处理方法、装置及电子设备
US20220020361A1 (en) Systems and methods for fast filtering of audio keyword search
CN116522401B (zh) 基于云数据安全的信息去标识化处理方法及系统
CN116680368B (zh) 一种基于贝叶斯分类器的水利知识问答方法、设备及介质
US20230274161A1 (en) Entity linking method, electronic device, and storage medium
CN116244146A (zh) 日志异常检测方法、日志异常检测模型的训练方法及装置
US11645283B2 (en) Predictive query processing
US20230142351A1 (en) Methods and systems for searching and retrieving information
CN112925889A (zh) 自然语言处理方法、装置、电子设备和存储介质
CN113627148A (zh) 一种知识库中知识的自动关联方法及装置
CN113408263A (zh) 刑期预测方法、装置、存储介质及电子设备
CN113506573B (zh) 生成回复语音的方法及装置
CN113077272B (zh) 通信业务营销案优化方法和装置
US11907673B1 (en) Enhancing chatbot recognition of user intent through graph analysis
US20240193190A1 (en) Automated key-value extraction using natural language intents
CN116304045A (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