数据库数据缓存方法、查询方法及缓存装置、查询装置的制造方法

文档序号:9597831阅读:407来源:国知局
数据库数据缓存方法、查询方法及缓存装置、查询装置的制造方法
【技术领域】
[0001]本发明涉及数据库技术领域,尤其涉及一种数据库数据缓存方法、查询方法及缓存装置、查询装置。
【背景技术】
[0002]目前,一般使用数据库进行数据存储,很多业务系统的运行也基于数据库进行。当用户或程序查询数据时,输入查询条件,系统根据查询条件直接访问数据库进行查询,并将查询的结果返回给用户或程序,将查询的结果返回时,也完成对数据库数据的一次调用。
[0003]随着数据库技术的发展,数据库能够存储的数据越来越多,当数据库中存储了海量数据,或者用户或程序的查询量很大时,查询过程常常超时。或者,一些业务系统在处理过程中,需要频繁查询数据库中的基础配置表,占据了数据库查询资源,导致用户或程序在查询时,往往需要等待很长时间才能得到查询结果。但很多用户在查询结果未及时返回,例如系统页面一直显示在处理中,或者显示系统繁忙时,可能会再次按照查询条件进行查询,加之对数据库的查询往往是多个用户并发操作,使得对数据库的查询调用极为频繁,不仅导致查询过程超时严重,还会使系统内存占用增加,严重影响系统性能,甚至导致系统宕机。
[0004]现阶段,比较通用的解决数据查询超时的处理方式,是对数据库建立分库分表的机制,输入查询条件以后,按照查询条件在不同的库和表中进行路由(路径选择)。但发明人在实现本发明的过程中发现,上述处理方式由于需要在不同的和表中查询,数据查询效率提高得并不明显,而且易出错,不能有效地解决数据查询超时和效率低的问题。

【发明内容】

[0005]为克服相关技术中数据查询超时和效率低的问题,本申请提供一种数据数据库数据缓存、查询方法及缓存、查询装置。
[0006]根据本申请实施例的第一方面,提供一种数据库数据缓存方法,包括:
[0007]记录数据被调用的次数和第一次被调用的时间;
[0008]当数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率大于或等于频率阈值时,将所述数据放入缓存。
[0009]可选的,所述的数据库数据缓存方法,当数据第一次被调用的时间至当前被调用的时间的时间间隔小于或等于时间阈值,且所述时间间隔以内数据被调用的次数大于或等于次数阈值时,将所述数据放入缓存。
[0010]可选的,所述的数据库数据缓存方法,还包括:
[0011]当数据当前被调用的时间与第一次被调用的时间之间的差值大于时间预设值,且数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率小于频率预设值时,将所述数据被调用的次数和第一次被调用的时间清零,重新记录所述数据被调用的次数和第一次被调用的时间。
[0012]可选的,所述的数据库数据缓存方法,在所述数据被放入缓存后,还包括:
[0013]固化所述数据第一次被调用时间至当前被调用时间的时间间隔以内被调用的频率。
[0014]可选的,所述的数据库数据缓存方法,在所述数据被放入缓存后,还包括:
[0015]固化所述数据第一次被调用时间至当前被调用时间的时间间隔以内被调用的频率;
[0016]当数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率大于或等于频率阈值时,在将所述数据放入缓存之前,还包括:
[0017]判断缓存当前的剩余容量是否大于或等于所述数据占用的容量;
[0018]当缓存当前的剩余容量大于或等于所述数据占用的容量时,将所述数据放入缓存,否则,按缓存中其他数据的所述被调用的频率从小至大的排列顺序依次删除缓存中的其他数据,直至缓存的剩余容量大于或等于所述数据占用的容量时,停止删除,将所述数据放入缓存。
[0019]可选的,所述的数据库数据缓存方法,将所述数据放入缓存之后,还包括:
[0020]记录所述数据被放入缓存的时间和放入缓存时被调用的次数;
[0021]所述数据每次从缓存中被调用时,所述数据的被调用的次数加1。
[0022]可选的,所述的数据库数据缓存方法,还包括:
[0023]将所述数据放入缓存之后,记录所述数据被放入缓存的时间和放入缓存时被调用的次数,所述数据每次从缓存中被调用时,所述数据的被调用的次数加1;
[0024]当缓存中数据从被放入缓存的时间起在预设的保存时间段以内被调用的次数增加的值小于预设的保存次数时,将所述数据从缓存中删除。
[0025]可选的,所述的数据库数据缓存方法,还包括:
[0026]将所述数据放入缓存之后,记录所述数据被放入缓存的时间和放入缓存时被调用的次数,所述数据每次从缓存中被调用时,所述数据的被调用的次数加1 ;
[0027]当数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率大于或等于频率阈值时,在将所述数据放入缓存之前,还包括:
[0028]判断缓存当前的剩余容量是否大于或等于所述数据占用的容量;
[0029]当缓存当前的剩余容量大于或等于所述数据占用的容量时,将所述数据放入缓存,否则,分别计算缓存中各个数据从被放入缓存起至当前时间的时间间隔以内被调用的频率;
[0030]按各个数据从被放入缓存起至当前时间的时间间隔以内被调用的频率从小至大的排列顺序依次删除缓存中的数据,直至缓存的剩余容量大于或等于所述数据占用的容量时,停止删除,将所述数据放入缓存。
[0031]可选的,所述的数据库数据缓存方法,在分别计算缓存中各个数据从被放入缓存起至当前时间的时间间隔以内被调用的频率之后,还包括:
[0032]判断所述数据被调用的频率是否小于或等于缓存中数据的最小的被调用频率;
[0033]当所述数据被调用的频率小于或等于所述最小的被调用频率时,所述数据不放入缓存,否则,按各个数据从被放入缓存起至当前时间的时间间隔以内被调用的频率从小至大的排列顺序依次删除缓存中的数据,直至缓存的剩余容量大于或等于所述数据占用的容量时,停止删除,将所述数据放入缓存。
[0034]可选的,所述的数据库数据缓存方法,当数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率大于或等于频率阈值时,在将所述数据放入缓存之前,还包括:
[0035]判断缓存当前的剩余容量是否大于或等于所述数据占用的容量;
[0036]当缓存当前的剩余容量大于或等于所述数据占用的容量时,将所述数据放入缓存,否则,按缓存中数据放入缓存的时间由早至晚的排列顺序依次删除缓存中的数据,直至缓存当前的剩余容量大于或等于所述数据占用的容量时,停止删除,将所述数据放入缓存。
[0037]根据本申请实施例的第二方面,提供一种数据查询方法,包括:
[0038]判断缓存中是否存在满足部分或者完全查询条件的数据;
[0039]当缓存中存在满足完全查询条件的数据时,返回所述数据;
[0040]当缓存中存在满足部分查询条件的数据时,返回所述数据,并在数据库中查询满足其余部分查询条件的数据;
[0041]当缓存中不存在与查询条件对应的数据时,在数据库查询与查询条件对应的数据。
[0042]根据本申请实施例的第三方面,提供一种数据库数据缓存装置,包括:
[0043]调用次数记录单元,用于记录数据被调用的次数;
[0044]调用时间记录单元,用于记录数据当前被调用的时间和第一次被调用的时间;
[0045]第一判断单元,用于判断数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率是否大于或等于频率阈值;
[0046]第一存入单元,用于当数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率大于或等于频率阈值时,将所述数据放入缓存。
[0047]可选的,所述的数据库数据缓存装置中,所述第一判断单元,用于判断数据第一次被调用的时间至当前被调用的时间的时间间隔是否大于时间阈值,以及用于判断所述时间间隔以内数据被调用的次数是否小于次数阈值;
[0048]所述第一存入单元,用于当数据第一次被调用的时间至当前被调用的时间的时间间隔大于时间阈值,且所述时间间隔以内数据被调用的次数小于次数阈值时,将所述数据放入缓存。
[0049]可选的,所述的数据库数据缓存装置,还包括:
[0050]第二判断单元,用于判断数据当前被调用的时间与第一次被调用的时间之间的差值是否大于时间预设值;
[0051]第三判断单元,用于判断数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率是否小于频率预设值;
[0052]清零单元,用于当数据第一次被调用的时间至当前被调用的时间的时间间隔大于时间预设值,且数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率小于频率预设值时,将所述数据被调用的次数和第一次被调用的时间清零。
[0053]可选的,所述的数据库数据缓存装置,还包括:
[0054]固化单元,用于数据放入缓存后,固化所述数据的第一次被调用时间至当前被调用时间的时间间隔以内被调用的频率。
[0055]可选的,所述的数据库数据缓存装置,还包括:
[0056]缓存容量判断单元,用于当数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率大于或等于频率阈值时,或者,当数据第一次被调用的时间至当前被调用的时间的时间间隔大于时间阈值,且所述时间间隔以内数据被调用的次数小于次数阈值时,判断缓存当前的剩余容量是否大于或等于所述数据占用的容量;
[0057]第二存入单元,用于当缓存当前的剩余容量大于或等于所述数据占用的容量时,将所述数据放入缓存;
[0058]第一删除单元,用于当缓存当前的剩余容量小于所述数据占用的容量时,按缓存中其他数据固化的被调用的频率从小至大的排列顺序依次删除缓存中的其他数据,直至缓存的剩余容量大于或等于所述数据占用的容量时,停止删除。
[0059]可选的,所述的数据库数据缓存装置,还包括:
[0060]存入时间记录单元,用于记录数据被放入缓存的时间;
[0061]存入次数记录单元,用于记录被放入缓存时数据被调用的次数;
[0062]调用次数记录单元,用于当数据每次从缓存中被调用时,将所述数据被调用的次数加1。
[0063]可选的,所述的数据库数据缓存装置,其特征在于,还包括:
[0064]第四判断单元,用于判断缓存中数据从被放入缓存的时间起在预设的保存时间段以内被调用的次数增加的值是否小于预设的保存次数;
[0065]第二删除单元,用于当缓存中数据从被放入缓存的时间起在预设的保存时间段以内被调用的次数增加的值小于预设的保存次数时,将所述数据从缓存中删除。
[0066]可选的,所述的数据库数据缓存装置,还包括:
[0067]缓存容量判断单元,用于当数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率大于或等于频率阈值时,或者,当数据第一次被调用的时间至当前被调用的时间的时间间隔大于时间阈值,且所述时间间隔以内数据被调用的次数小于次数阈值时,判断缓存当前的剩余容量是否大于或等于所述数据占用的容量;
[0068]第二存入单元,用于当缓存当前的剩余容量大于或等于所述数据占用的容量时,将所述数据放入缓存;
[0069]第一计算单元,用于分别计算缓存中各个数据从被放入缓存起至当前时间的时间间隔以内被调用的频率;
[0070]第三删除单元,用于当缓存当前的剩余容量小于所述数据占用的容量时,按各个数据从被放入缓存起至当前时间的时间间隔以内被调用的频率从小至大的排列顺序依次删除缓存中的数据,直至缓存的剩余容量大于或等于所述数据占用的容量时,停止删除。
[0071]可选的,所述的数据库数据缓存装置,还包括:
[0072]频率比较单元,用于判断所述数据被调用的频率是否小于或等于缓存中其他数据中最小的被调用频率;
[0073]存入禁止单元,用于当所述数据被调用的频率小于或等于所述最小的被调用频率时,禁止所述第二存入单元;
[0074]存入使能单元,用于当所述数据被调用的频率大于所述最小的被调用频率时,使能所述第二存入单元。
[0075]可选的,所述的数据库数据缓存装置,还包括:
[0076]缓存容量判断单元,用于当数据第一次被调用的时间至当前被调用的时间的时间间隔以内被调用的频率大于或等于频率阈值时,或者,当数据第一次被调用的时间至当前被调用的时间的时间间隔大
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1