CN110019362B - 一种访问数据库的方法及装置 - Google Patents
一种访问数据库的方法及装置 Download PDFInfo
- Publication number
- CN110019362B CN110019362B CN201711089424.XA CN201711089424A CN110019362B CN 110019362 B CN110019362 B CN 110019362B CN 201711089424 A CN201711089424 A CN 201711089424A CN 110019362 B CN110019362 B CN 110019362B
- Authority
- CN
- China
- Prior art keywords
- database
- access request
- subsequent
- current
- subsequent access
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种访问数据库的方法及装置,通过获取数据库当前访问请求,其中,数据库当前访问请求中包括数据库后续访问请求预测信息,数据库后续访问请求预测信息用于指示在获取到数据库当前访问请求之后获取的数据库后续访问请求。根据预测信息指示的数据库后续访问请求,从数据库中获取数据库后续访问请求所请求的数据,并将获取的数据缓存到本地缓存。在确定获取到数据库后续访问请求时,直接从本地缓存中获取数据库后续访问请求所请求的数据,解决了多次访问数据库造成的压力过大的问题,进而减少了业务处理的时间,实现了利用业务逻辑关联度在复杂业务逻辑场景下进行业务处理。
Description
技术领域
本发明涉及数据业务领域,尤其涉及一种访问数据库的方法及装置。
背景技术
数据库存储技术已发展的越来越成熟,故,目前业务处理过程中,大多采用从数据库获取业务处理过程中所需要的数据。然而,在具有复杂业务逻辑的业务处理过程中,需要多次访问数据库,多次访问数据库将造成数据库访问压力过大,并使业务处理过程持续时间过长。
目前,为解决上述问题,常用的解决方案有以下两种:(1)并发方案,该并发方案是将所有涉及读取数据库的业务逻辑进行分类,并将分类后的业务逻辑以类为单位并发访问数据库,故所需时间最长的类对应的时间就是业务处理过程访问数据库所持续的时间。此并发方案可缩短业务处理的时间,但是并不能减轻数据库的访问压力。(2)分布式缓存方案,该分布式缓存方案是将业务处理过程中经常需要读取的数据通过分布式缓存的方式预先缓存在分布式存储系统中,在各业务逻辑进行数据库访问时,可读取分布式存储系统中缓存的数据,降低数据库的访问压力,但是采用分布式缓存的方式,读取分布式存储系统中缓存的数据带来了额外的网络IO开销,并且若分布式存储系统发生异常,将会影响业务处理的实施。
故,复杂业务逻辑场景下进行业务处理时,如何提供一种有效的数据库访问方法,急需解决。
发明内容
本发明的目的是提供一种访问数据库的方法及装置,以减轻数据库访问压力,并缩短业务处理的时间,实现在复杂业务逻辑场景下进行数据库访问。
本发明的目的是通过以下技术方案实现的:
本发明一方面提供了一种访问数据库的方法,包括:
获取数据库当前访问请求,所述数据库当前访问请求中包括数据库后续访问请求预测信息,所述数据库后续访问请求预测信息用于指示在获取到数据库当前访问请求之后获取的数据库后续访问请求;
根据所述预测信息指示的数据库后续访问请求,从数据库中获取所述数据库后续访问请求所请求的数据,并将获取的数据缓存到本地缓存;
确定获取到所述数据库后续访问请求时,从所述本地缓存中获取所述数据库后续访问请求所请求的数据。
可选的,所述数据库当前访问请求中还包括数据库后续访问请求的获取时间距离所述数据库当前访问请求的获取时间的时延信息;
所述获取数据库当前访问请求之后,所述方法还包括:
若在所述时延信息指示的时延内获取到所述数据库后续访问请求,则在已创建的数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数以及在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数;
确定所述数据库后续访问请求预测信息的置信度,并在所述已创建的数据库访问请求关联度量表中记录所述置信度,所述置信度为实际获取到数据库当前访问请求的次数与在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数之间的比值;
根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
可选的,根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据,包括:
若所述置信度的值小于黄金分割值,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据;若所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
可选的,确定所述数据库后续访问请求预测信息的置信度之后,所述方法还包括:
若所述置信度的值小于黄金分割值,或者所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则删除所述数据库访问请求关联度量表中记录的实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度。
本发明另一方面提供了一种访问数据库的装置,包括:
获取单元,用于获取数据库当前访问请求以及数据库后续访问请求所请求的数据,并且在确定获取到所述数据库后续访问请求时,从本地缓存中获取所述数据库后续访问请求所请求的数据,所述数据库当前访问请求中包括数据库后续访问请求预测信息,所述数据库后续访问请求预测信息用于指示在获取到数据库当前访问请求之后获取的数据库后续访问请求。
缓存单元,用于将所述获取单元获取到的所述数据库后续访问请求所请求的数据缓存到本地缓存。
可选的,所述数据库当前访问请求中还包括数据库后续访问请求的获取时间距离所述数据库当前访问请求的获取时间的时延信息。
所述缓存单元还用于:若所述获取单元在所述时延信息指示的时延内获取到所述数据库后续访问请求,则在已创建的数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数以及在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数。
确定所述数据库后续访问请求预测信息的置信度,并在所述已创建的数据库访问请求关联度量表中记录所述置信度,所述置信度为实际获取到数据库当前访问请求的次数与在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数之间的比值。
根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
可选的,所述缓存单元用于按如下方式根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据:
若所述置信度的值小于黄金分割值,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
若所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
可选的,所述缓存单元还用于:
若所述置信度的值小于黄金分割值,或者所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则删除所述数据库访问请求关联度量表中记录的实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度。
本发明提供了一种业务处理设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现如上述所述的访问数据库的方法。
本发明提供了一种计算机存储介质,所述计算机存储介质上存储有程序指令,该程序指令被处理器执行时,用于实现如上述所述的访问数据库的方法。
本发明实施例提供的一种访问数据库的方法及装置,通过获取数据库当前访问请求,其中,数据库当前访问请求中包括数据库后续访问请求预测信息,数据库后续访问请求预测信息用于指示在获取到数据库当前访问请求之后获取的数据库后续访问请求。根据预测信息指示的数据库后续访问请求,从数据库中获取数据库后续访问请求所请求的数据,并将获取的数据缓存到本地缓存。在确定获取到数据库后续访问请求时,直接从本地缓存中获取数据库后续访问请求所请求的数据,解决了多次访问数据库造成的压力过大的问题,进而减少了业务处理的时间,实现了利用业务逻辑关联度在复杂业务逻辑场景下进行业务处理。
附图说明
图1为本发明实施例提供的一种访问数据库的方法流程图;
图2为本发明实施例提供的预加载模型的示意图;
图3为本发明实施例提供的一种访问数据库的装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种访问数据库的方法及装置,通过获取数据库当前访问请求,在数据库当前访问请求中携带有数据库后续访问请求的预测信息。根据预测信息指示的数据库后续访问请求,将数据库后续访问请求所请求的数据缓存在本地缓存中,在获取到数据库后续访问请求时,直接从本地缓存中获取数据库后续访问请求所请求的数据,解决了多次访问数据库造成的压力过大的问题,进而减少了业务处理的时间,实现了利用业务逻辑关联度在复杂业务逻辑场景下进行业务处理。
图1所示为本发明实施例提供的一种访问数据库的方法流程图,图1所示方法的执行主体可以是一种访问数据库的装置,参阅图1所示,该方法包括:
S101:获取数据库当前访问请求。
对于一段完整的业务逻辑而言,各个业务处理的执行顺序之间具有一定的关联关系,对应于程序运行时的代码逻辑之间就有一定的关联关系。在业务逻辑的应用系统中,数据库访问相当于执行编码程序,而程序中的编码语言可认为是业务逻辑之间的方法,各方法之间有一定的关联关系,而业务逻辑内的方法可以标识数据库访问请求,也可以认为是可以代表一次结构化查询语言(Structured Query Language,SQL),以下表一将对业务逻辑内的方法进行定义,如下表一所示。
表一
通过上述表一可知,完成一次完整的业务处理过程中,业务逻辑内的方法可以标识数据库访问请求,各数据库访问请求之间具有一定的关联关系,数据库访问请求之间的关联关系可以认为是以下关系:如程序中包括有数据库访问请求A以及数据库访问请求B等多个数据库访问请求,当在程序运行时执行过数据库访问请求A之后一定会执行数据库访问请求B。或者当在程序运行时,执行过数据库访问请求A之后有一定概率会执行数据库访问请求B。故,本申请实施例中可在获取的数据库当前访问请求中包括后续数据库访问请求,例如,可在数据库访问请求A中包含数据库访问请求B,那么在执行数据库访问请求A时,将数据库访问请求B所请求的数据预先准备好,当需要执行数据库访问请求B时,就可以直接反馈数据库访问请求B所请求的数据,不需要再访问数据库去获取数据库访问请求B所请求的数据。
本发明实施例中,设计了一个预加载模型,参阅图2所示,该模型包括:代理模块、关联度量模块以及内存池。其中,代理模块用于接收应用程序内的代码段发送的数据库访问请求。关联度量模块中包括有关联度量表,关联度量表中记录有个数据库访问请求之间的关联关系,并且本发明实施例中可根据关联度量表中的数据计算数据库当前请求信息中包括的数据库后续访问请求信息的正确概率。内存池用于存储数据库访问请求所请求的数据。
在应用程序需要访问数据库时,可由代理模块获取数据库的当前访问请求,该数据库当前访问请求中包括数据库后续访问请求预测信息。其中,数据库后续访问请求预测信息用于指示在获取到数据库当前访问请求之后获取的数据库后续访问请求。
S102:根据预测信息指示的数据库后续访问请求,从数据库中获取数据库后续访问请求所请求的数据,并将获取的数据缓存到本地缓存。
本发明实施例中,在获取到数据库当前请求之后,响应数据库当前请求,并根据预测信息指示的数据库后续访问请求,从数据库中获取数据库后续访问请求所请求的数据,将获取到的数据库后续访问请求所请求的数据保存在本地缓存中,例如可保存在设置的预加载模型的内存池中。
一种可能的实施方式中,应用程序中的代码段向代理模块发送数据库当前请求,其中数据库当前请求中包括有数据库下一次请求的预测信息。假设数据库当前请求为A,数据库下一次请求为B,那么在代理模块接收到数据库访问请求A之后,响应数据库访问请求A,同时从数据库中读取数据库访问请求B的数据,并将读取到的数据库访问请求B的数据缓存在本地缓存中。
S103:确定获取到数据库后续访问请求时,从本地缓存中获取数据库后续访问请求所请求的数据。
本发明实施例中,在确定获取到数据库后续访问的请求时,可以直接从本地缓存中获取数据库后续访问请求所请求的数据,不需要再去访问数据库获取数据库后续访问请求所请求的数据,以减轻数据库的访问压力,并可减少整个业务处理过程的时间,提高业务处理的效率。
进一步的,本发明实施例中,数据库当前访问请求中还可包括数据库后续访问请求的获取时间距离数据库当前访问请求的获取时间的时延信息。在将获取到的数据库后续访问请求所请求的数据保存在本地缓存之后,可判断数据库后续访问请求是否会在时延信息的最大时间内被获取到,以确定数据库当前请求中包括的数据库后续访问请求的正确概率。
本发明实施例中,在设置的预加载模型的关联度量模块中包括有关联度量表,其中,关联度量表可以是预先创建的数据库访问请求的记录表。该关联度量表中可包括有如下内容:当前请求(Current Request,CR)、当前请求对应的下一次请求的预测请求(NextRequest,NR)、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数(Hit Number,HN)、实际获取到数据库当前访问请求的次数(Total Number,TN)、置信度(Confidence Value,CV),其中CV=HN/TN,代表请求预测正确的概率。
若在时延信息的最大时间内获取到后续的数据库访问请求,则在已创建的数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数以及在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数。
一种可能的实施方式中,假设当前请求为R1,后续的下一次请求为R2,那么在关联度量表中查找是否存在当前请求为R1,当前请求对应下一次预测请求为R2的记录,若在关联度量表中已存在该条记录,则将实际获取到数据库当前访问请求R1的次数TN以及在获取到数据库当前访问请求之后实际获取到数据库后续访问请求R2的次数HN加1。若在关联度量表中不存在该条记录,则将该条记录初始化。根据更新后的关联度量表中的数据计算置信度,该置信度为实际获取到数据库当前访问请求的次数与在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数之间的比值。
进一步的,另一种可能的实施方式中,若在时延信息的最大时间内没有获取到后续数据库访问请求,则在已创建的关联度量表中记录实际获取到数据库当前访问请求的次数。假设当前请求为R1,后续的下一次请求为R2,根据关联度量表中记录的R1、R2的次数,若R2没有在时延信息的最大时间内被获取到,则将关联度量表中记录的数据库当前请求R1的次数TN加1,R2的次数HN保持不变。当R2的实际数据库访问请求到达时,可以直接在本地缓存中读取预先缓存的R2的数据库访问请求所请求的数据,不需要再次访问数据库获取数据库访问请求所请求的数据,以减少业务处理过程中的时间。
本发明实施例中,可以根据计算出的置信度,在本地缓存中删除数据库后续访问请求所请求的数据中的无效数据或者置信度较低的数据。
本发明实施例中,随着数据库访问请求的不断发送,使得关联度量表中的数据不断更新,经过不断的迭代运算,关联度量表中存储的数据一直在更新且数据库访问请求的记录条数在不断的增多,但是关联度量表中的数据的保存时间不可能无限延长,故,本申请实施例中可为关联度量表中的数据的存储时间设置一个初始有效周期(Init ValidCycle)m,然后每间隔n对关联度量表中的数据进行扫描,根据表中的数据的置信度以及存储时间来判断是否需要对关联度量表中的数据进行删除。
一种可能的实施方式中,可以预先设置一个置信度的基准值,利用该基准值判断关联度量表中的无效数据或者置信度比较低的数据。例如可将基准值设置为黄金分割值(Golden section value,GSV)(该黄金分割值通常可以设置为0.618),将关联度量表中的数据的初始有效周期设置为m,并设置每间隔n时对关联度量表中的数据进行扫描。其中n<m。例如设置m=10min,n=1min。利用该基准值判断关联度量表中的无效数据或者置信度比较低的数据可以有以下几种情况:
(1)关联度量表中的请求所记录的数据的CV值小于0.618,则删除表中记录的数据,并删除本地缓存的后续请求的数据。
(2)关联度量表中的请求所记录的数据的CV值大于等于0.618,并且在关联度量表中的存储时间大于设定的初始有效周期10min,则删除关联度量表中记录的数据,并删除本地缓存中已缓存的所述数据库后续访问请求所请求的数据。
(3)关联度量表中的请求所记录的数据的CV值大于等于0.618,但是在表中的存储时间没有超过设定的初始有效周期10min,则可以对关联度量表中所记录的数据不做处理。
本发明实施例中,通过设置的初始有效周期m以及黄金分割值GSV,对关联度量表中的数据以及缓存在本地缓存中的无效数据或置信度较低的数据进行删除,可以使得在复杂的业务逻辑下读取出的数据都是有效的且置信度比较高的数据,同时可以提高内存的利用率。
本发明实施例中,在进行数据库访问时,若数据库后续访问请求到达时,可以直接在本地缓存中读取预先缓存的数据库后续访问请求所请求的数据,这样可以缩短访问数据库的时间。
一种可能的实施方式中,可以将数据库后续访问请求所请求的数据保存在设置的预加载模型的内存池中。若在内存池中没有读取到预先缓存的数据库后续访问请求所请求的数据,则可采用目前已有的技术方案,从数据库中获取数据库后续访问请求所请求的数据。
基于与上述应用于访问数据库所涉及的方法实施例相同的构思,本发明实施例还提供了一种访问数据库的装置,图3所示为本发明实施例提供的一种访问数据库的装置的结构框图,参阅图3所示,该装置包括:获取单元101、缓存单元102。其中:
获取单元101,用于获取数据库当前访问请求以及数据库后续访问请求所请求的数据,并且在确定获取到所述数据库后续访问请求时,从本地缓存中获取所述数据库后续访问请求所请求的数据,所述数据库当前访问请求中包括数据库后续访问请求预测信息,所述数据库后续访问请求预测信息用于指示在获取到数据库当前访问请求之后获取的数据库后续访问请求。
缓存单元102,用于将所述获取单元获取到的所述数据库后续访问请求所请求的数据缓存到本地缓存。
本发明实施例中获取单元101可理解为是图2所示的预加载模型中的代理模块和关联度量模块。缓存单元102可理解为是图2所示的预加载模型中的内存池。
进一步的,数据库当前访问请求中还可包括数据库后续访问请求的获取时间距离所述数据库当前访问请求的获取时间的时延信息。所述缓存单元102还用于:若所述获取单元101在所述时延信息指示的时延内获取到所述数据库后续访问请求,则在已创建的数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数以及在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数;根据已创建的数据库访问请求关联度量表中记录的数据确定数据库后续访问请求预测信息的置信度,并在关联度量表中记录计算出的置信度的值。该置信度为实际获取到数据库当前访问请求的次数与在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数之间的比值,根据计算出的置信度,在本地缓存中删除数据库后续访问请求所请求的数据。
可选的,所述缓存单元102还用于按如下方式根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据:
若所述置信度的值小于黄金分割值,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据;若所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
进一步的,所述缓存单元102还用于:
若所述置信度的值小于黄金分割值,或者所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则删除所述数据库访问请求关联度量表中记录的实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度。
本发明实施例还提供了一种业务处理设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现如上述所述的访问数据库的方法。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有程序指令,该程序指令被处理器执行时,用于实现如上述所述的访问数据库的方法。
需要说明的是,本发明实施例中上述涉及的访问数据库的装置中各个单元的功能实现可以进一步参照相关方法实施例的描述,在此不再赘述。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种访问数据库的方法,其特征在于,包括:
获取数据库当前访问请求,所述数据库当前访问请求中包括数据库后续访问请求预测信息和数据库后续访问请求的获取时间距离所述数据库当前访问请求的获取时间的时延信息,所述数据库后续访问请求预测信息用于指示在获取到数据库当前访问请求之后获取的数据库后续访问请求;
根据所述预测信息指示的数据库后续访问请求,从数据库中获取所述数据库后续访问请求所请求的数据,并将获取的数据缓存到本地缓存;
确定获取到所述数据库后续访问请求时,从所述本地缓存中获取所述数据库后续访问请求所请求的数据;以及,
若在所述时延信息指示的时延内获取到所述数据库后续访问请求,则在已创建的数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数以及在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数;
确定所述数据库后续访问请求预测信息的置信度,并在所述已创建的数据库访问请求关联度量表中记录所述置信度,所述置信度为实际获取到数据库当前访问请求的次数与在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数之间的比值;
根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
2.如权利要求1所述的方法,其特征在于,根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据,包括:
若所述置信度的值小于黄金分割值,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据;
若所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
3.如权利要求1或2所述的方法,其特征在于,确定所述数据库后续访问请求预测信息的置信度之后,所述方法还包括:
若所述置信度的值小于黄金分割值,或者所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则
删除所述数据库访问请求关联度量表中记录的实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度。
4.一种访问数据库的装置,其特征在于,包括:
获取单元,用于获取数据库当前访问请求以及数据库后续访问请求所请求的数据,并且在确定获取到所述数据库后续访问请求时,从本地缓存中获取所述数据库后续访问请求所请求的数据,所述数据库当前访问请求中包括数据库后续访问请求预测信息和数据库后续访问请求的获取时间距离所述数据库当前访问请求的获取时间的时延信息,所述数据库后续访问请求预测信息用于指示在获取到数据库当前访问请求之后获取的数据库后续访问请求;
缓存单元,用于将所述获取单元获取到的所述数据库后续访问请求所请求的数据缓存到本地缓存;
所述缓存单元还用于:若所述获取单元在所述时延信息指示的时延内获取到所述数据库后续访问请求,则在已创建的数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数以及在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数;
确定所述数据库后续访问请求预测信息的置信度,并在所述已创建的数据库访问请求关联度量表中记录所述置信度,所述置信度为实际获取到数据库当前访问请求的次数与在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数之间的比值;
根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
5.如权利要求4所述的装置,其特征在于,所述缓存单元用于按如下方式根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据:
若所述置信度的值小于黄金分割值,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据;
若所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
6.如权利要求4或5所述的装置,其特征在于,所述缓存单元还用于:
若所述置信度的值小于黄金分割值,或者所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则
删除所述数据库访问请求关联度量表中记录的实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度。
7.一种业务处理设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其特征在于,所述处理器执行所述程序时实现如权利要求1-3任一项所述访问数据库的方法。
8.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有程序指令,该程序指令被处理器执行时,用于实现如权利要求1至3任一项所述访问数据库的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711089424.XA CN110019362B (zh) | 2017-11-08 | 2017-11-08 | 一种访问数据库的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711089424.XA CN110019362B (zh) | 2017-11-08 | 2017-11-08 | 一种访问数据库的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019362A CN110019362A (zh) | 2019-07-16 |
CN110019362B true CN110019362B (zh) | 2021-08-13 |
Family
ID=67186066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711089424.XA Active CN110019362B (zh) | 2017-11-08 | 2017-11-08 | 一种访问数据库的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019362B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563106A (zh) * | 2020-07-14 | 2020-08-21 | 成都市映潮科技股份有限公司 | 一种数据缓存方法、装置、系统及可读存储介质 |
CN113849532A (zh) * | 2021-09-24 | 2021-12-28 | 中国第一汽车股份有限公司 | 缓存预热方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186552A (zh) * | 2011-12-28 | 2013-07-03 | 北京新媒传信科技有限公司 | 一种业务服务中客户端访问数据的方法和系统 |
CN103631972A (zh) * | 2013-12-23 | 2014-03-12 | 济南大学 | 一种列访问感知的数据缓存方法及系统 |
CN105426411A (zh) * | 2015-10-31 | 2016-03-23 | 南京南瑞继保电气有限公司 | 基于访问趋势预测的时间序列数据库缓存管理方法 |
CN106897433A (zh) * | 2017-02-27 | 2017-06-27 | 福建中金在线信息科技有限公司 | 一种数据获取方法及装置 |
CN106973114A (zh) * | 2017-04-28 | 2017-07-21 | 腾讯科技(深圳)有限公司 | 接入方法、服务器及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082928B (zh) * | 2007-06-25 | 2010-11-24 | 腾讯科技(深圳)有限公司 | 一种数据库访问的方法及数据库映射系统 |
US8495056B2 (en) * | 2009-09-21 | 2013-07-23 | At&T Intellectual Property I, L.P. | System and method for caching database reports |
CN102402596B (zh) * | 2011-11-07 | 2016-01-20 | 北京搜狗科技发展有限公司 | 一种主从分离数据库的读写方法和系统 |
CN104573086A (zh) * | 2015-01-28 | 2015-04-29 | 浪潮集团有限公司 | 一种数据库访问构件及一种数据库访问构件的生成方法 |
US10324914B2 (en) * | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
-
2017
- 2017-11-08 CN CN201711089424.XA patent/CN110019362B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186552A (zh) * | 2011-12-28 | 2013-07-03 | 北京新媒传信科技有限公司 | 一种业务服务中客户端访问数据的方法和系统 |
CN103631972A (zh) * | 2013-12-23 | 2014-03-12 | 济南大学 | 一种列访问感知的数据缓存方法及系统 |
CN105426411A (zh) * | 2015-10-31 | 2016-03-23 | 南京南瑞继保电气有限公司 | 基于访问趋势预测的时间序列数据库缓存管理方法 |
CN106897433A (zh) * | 2017-02-27 | 2017-06-27 | 福建中金在线信息科技有限公司 | 一种数据获取方法及装置 |
CN106973114A (zh) * | 2017-04-28 | 2017-07-21 | 腾讯科技(深圳)有限公司 | 接入方法、服务器及系统 |
Non-Patent Citations (1)
Title |
---|
大规模混合数据库缓冲区替换方法优化仿真;陆云帆等;《计算机仿真》;20160815;第425-429页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110019362A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109240946B (zh) | 数据的多级缓存方法及终端设备 | |
CN109379395B (zh) | 一种接口数据缓存设置方法及终端设备 | |
CN110704336B (zh) | 一种数据缓存方法及装置 | |
US9021087B1 (en) | Method to improve caching accuracy by using snapshot technology | |
CN105447171A (zh) | 数据缓存方法与装置 | |
US10725921B2 (en) | System and method for caching time series data | |
CN109446114A (zh) | 一种空间数据缓存方法、装置和存储介质 | |
CN110019362B (zh) | 一种访问数据库的方法及装置 | |
CN111488736B (zh) | 自学习分词方法、装置、计算机设备和存储介质 | |
CN113377777B (zh) | 数据加载方法、设备、计算机程序产品及存储介质 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
CN116842292A (zh) | 动态页面缓存方法、电子设备、车辆及存储介质 | |
CN115934583B (zh) | 分级缓存方法、装置及系统 | |
CN110716689B (zh) | 数据处理方法、装置及计算设备 | |
US20230289350A1 (en) | Database management systems using query-compliant hashing techniques | |
CN116049181A (zh) | 一种基于ClickHouse集群的日志处理方法及装置 | |
CN110825652B (zh) | 淘汰磁盘块上的缓存数据的方法、装置及设备 | |
CN114334075A (zh) | 数据形状置信 | |
CN111563106A (zh) | 一种数据缓存方法、装置、系统及可读存储介质 | |
US12111813B1 (en) | Database management techniques for concurrent write request processing | |
CN107239474B (zh) | 一种数据记录方法及装置 | |
US11734281B1 (en) | Database management systems using query-compliant hashing techniques | |
CN117667964B (zh) | 数据处理方法、装置、设备、数据库及计算机程序产品 | |
CN112612415B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN118132520B (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 |