CN110019362A - 一种访问数据库的方法及装置 - Google Patents

一种访问数据库的方法及装置 Download PDF

Info

Publication number
CN110019362A
CN110019362A CN201711089424.XA CN201711089424A CN110019362A CN 110019362 A CN110019362 A CN 110019362A CN 201711089424 A CN201711089424 A CN 201711089424A CN 110019362 A CN110019362 A CN 110019362A
Authority
CN
China
Prior art keywords
database
access request
confidence level
subsequent
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.)
Granted
Application number
CN201711089424.XA
Other languages
English (en)
Other versions
CN110019362B (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.)
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software 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 China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201711089424.XA priority Critical patent/CN110019362B/zh
Publication of CN110019362A publication Critical patent/CN110019362A/zh
Application granted granted Critical
Publication of CN110019362B publication Critical patent/CN110019362B/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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database 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 (10)

1.一种访问数据库的方法,其特征在于,包括:
获取数据库当前访问请求,所述数据库当前访问请求中包括数据库后续访问请求预测信息,所述数据库后续访问请求预测信息用于指示在获取到数据库当前访问请求之后获取的数据库后续访问请求;
根据所述预测信息指示的数据库后续访问请求,从数据库中获取所述数据库后续访问请求所请求的数据,并将获取的数据缓存到本地缓存;
确定获取到所述数据库后续访问请求时,从所述本地缓存中获取所述数据库后续访问请求所请求的数据。
2.如权利要求1所述的方法,其特征在于,所述数据库当前访问请求中还包括数据库后续访问请求的获取时间距离所述数据库当前访问请求的获取时间的时延信息;
所述获取数据库当前访问请求之后,所述方法还包括:
若在所述时延信息指示的时延内获取到所述数据库后续访问请求,则在已创建的数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数以及在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数;
确定所述数据库后续访问请求预测信息的置信度,并在所述已创建的数据库访问请求关联度量表中记录所述置信度,所述置信度为实际获取到数据库当前访问请求的次数与在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数之间的比值;
根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
3.如权利要求2所述的方法,其特征在于,根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据,包括:
若所述置信度的值小于黄金分割值,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据;
若所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
4.如权利要求2或3所述的方法,其特征在于,确定所述数据库后续访问请求预测信息的置信度之后,所述方法还包括:
若所述置信度的值小于黄金分割值,或者所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则
删除所述数据库访问请求关联度量表中记录的实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度。
5.一种访问数据库的装置,其特征在于,包括:
获取单元,用于获取数据库当前访问请求以及数据库后续访问请求所请求的数据,并且在确定获取到所述数据库后续访问请求时,从本地缓存中获取所述数据库后续访问请求所请求的数据,所述数据库当前访问请求中包括数据库后续访问请求预测信息,所述数据库后续访问请求预测信息用于指示在获取到数据库当前访问请求之后获取的数据库后续访问请求;
缓存单元,用于将所述获取单元获取到的所述数据库后续访问请求所请求的数据缓存到本地缓存。
6.如权利要求5所述的方法,其特征在于,所述数据库当前访问请求中还包括数据库后续访问请求的获取时间距离所述数据库当前访问请求的获取时间的时延信息;
所述缓存单元还用于:
若所述获取单元在所述时延信息指示的时延内获取到所述数据库后续访问请求,则在已创建的数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数以及在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数;
确定所述数据库后续访问请求预测信息的置信度,并在所述已创建的数据库访问请求关联度量表中记录所述置信度,所述置信度为实际获取到数据库当前访问请求的次数与在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数之间的比值;
根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
7.如权利要求6所述的装置,其特征在于,所述缓存单元用于按如下方式根据所述置信度,在所述本地缓存中删除所述数据库后续访问请求所请求的数据:
若所述置信度的值小于黄金分割值,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据;
若所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则在所述本地缓存中删除所述数据库后续访问请求所请求的数据。
8.如权利要求6或7所述的装置,其特征在于,所述缓存单元还用于:
若所述置信度的值小于黄金分割值,或者所述置信度的值大于黄金分割值,且数据库访问请求关联度量表中记录实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度的时间大于设定的有效期,则
删除所述数据库访问请求关联度量表中记录的实际获取到数据库当前访问请求的次数、在获取到数据库当前访问请求之后实际获取到数据库后续访问请求的次数以及所述置信度。
9.一种业务处理设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其特征在于,所述处理器执行所述程序时实现如权利要求1-4任一项所述访问数据库的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有程序指令,该程序指令被处理器执行时,用于实现如权利要求1至4任一项所述访问数据库的方法。
CN201711089424.XA 2017-11-08 2017-11-08 一种访问数据库的方法及装置 Active CN110019362B (zh)

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 true CN110019362A (zh) 2019-07-16
CN110019362B 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563106A (zh) * 2020-07-14 2020-08-21 成都市映潮科技股份有限公司 一种数据缓存方法、装置、系统及可读存储介质
WO2023046059A1 (zh) * 2021-09-24 2023-03-30 中国第一汽车股份有限公司 缓存预热方法、装置、计算机设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101082928A (zh) * 2007-06-25 2007-12-05 腾讯科技(深圳)有限公司 一种数据库访问的方法及数据库映射系统
CN102402596A (zh) * 2011-11-07 2012-04-04 北京搜狗科技发展有限公司 一种主从分离数据库的读写方法和系统
CN103186552A (zh) * 2011-12-28 2013-07-03 北京新媒传信科技有限公司 一种业务服务中客户端访问数据的方法和系统
US20130290371A1 (en) * 2009-09-21 2013-10-31 At&T Intellectual Property I, L.P. System and method for caching database reports
CN103631972A (zh) * 2013-12-23 2014-03-12 济南大学 一种列访问感知的数据缓存方法及系统
CN104573086A (zh) * 2015-01-28 2015-04-29 浪潮集团有限公司 一种数据库访问构件及一种数据库访问构件的生成方法
CN105426411A (zh) * 2015-10-31 2016-03-23 南京南瑞继保电气有限公司 基于访问趋势预测的时间序列数据库缓存管理方法
US20160342661A1 (en) * 2015-05-20 2016-11-24 Commvault Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
CN106897433A (zh) * 2017-02-27 2017-06-27 福建中金在线信息科技有限公司 一种数据获取方法及装置
CN106973114A (zh) * 2017-04-28 2017-07-21 腾讯科技(深圳)有限公司 接入方法、服务器及系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101082928A (zh) * 2007-06-25 2007-12-05 腾讯科技(深圳)有限公司 一种数据库访问的方法及数据库映射系统
US20130290371A1 (en) * 2009-09-21 2013-10-31 At&T Intellectual Property I, L.P. System and method for caching database reports
CN102402596A (zh) * 2011-11-07 2012-04-04 北京搜狗科技发展有限公司 一种主从分离数据库的读写方法和系统
CN103186552A (zh) * 2011-12-28 2013-07-03 北京新媒传信科技有限公司 一种业务服务中客户端访问数据的方法和系统
CN103631972A (zh) * 2013-12-23 2014-03-12 济南大学 一种列访问感知的数据缓存方法及系统
CN104573086A (zh) * 2015-01-28 2015-04-29 浪潮集团有限公司 一种数据库访问构件及一种数据库访问构件的生成方法
US20160342661A1 (en) * 2015-05-20 2016-11-24 Commvault Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
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)

* Cited by examiner, † Cited by third party
Title
陆云帆等: "大规模混合数据库缓冲区替换方法优化仿真", 《计算机仿真》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563106A (zh) * 2020-07-14 2020-08-21 成都市映潮科技股份有限公司 一种数据缓存方法、装置、系统及可读存储介质
WO2023046059A1 (zh) * 2021-09-24 2023-03-30 中国第一汽车股份有限公司 缓存预热方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN110019362B (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
US11694109B2 (en) Data processing apparatus for accessing shared memory in processing structured data for modifying a parameter vector data structure
EP2612250B1 (en) Method and system for inserting cache blocks
US10515013B2 (en) Techniques for handling requests for data at a cache
US9614925B2 (en) Intelligent file pre-fetch based on access patterns
CN105608115A (zh) 数据获取方法与装置
CN106302829A (zh) 一种信息访问方法、装置及服务器
CN105447171A (zh) 数据缓存方法与装置
WO2023046059A1 (zh) 缓存预热方法、装置、计算机设备和存储介质
CN104750715A (zh) 缓存系统中数据淘汰方法、装置、系统及相关服务器设备
CN106528451A (zh) 针对小文件的二级缓存预取的云存储框架及构建方法
CN112749198A (zh) 一种基于版本号的多级数据缓存方法及装置
CN110019362A (zh) 一种访问数据库的方法及装置
Pan et al. predis: Penalty and locality aware memory allocation in redis
CN115712583A (zh) 一种提升分布式缓存跨节点访问性能的方法及装置、介质
CN114297478A (zh) 一种页面推荐方法、装置、设备以及存储介质
US9317432B2 (en) Methods and systems for consistently replicating data
JP2009187393A (ja) アクセス頻度の高い情報を事前にキャッシュする予測型キャッシュ方法、そのシステム及びそのプログラム
CN114785858B (zh) 应用于互感器在线监测系统的资源主动缓存方法及装置
CN116149566A (zh) 一种时序数据存储方法、装置、计算机设备及存储介质
EP4137971A1 (en) Distributed generic cacheability analysis
CN109189696A (zh) 一种照片分类器训练方法、ssd缓存系统及缓存方法
CN113626483B (zh) 一种填写表单的前端缓存方法、系统、设备及存储介质
US11502857B2 (en) Generation of user-specific time-to-live values using machine learning
CN114461681A (zh) 一种缓存内容管理方法、装置、电子设备和存储介质
CN113542326A (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