一种提高应用系统在关系数据库的空间与时间效率的方法技术方案

技术编号:14547941 阅读:167 留言:0更新日期:2017-02-04 19:27
本发明专利技术涉及关系数据库的查询缓存优化技术领域,具体涉及一种通过机器学习提高应用系统在关系数据库的空间与时间效率的方法。本发明专利技术方法通过分析特定应用系统的查询语句,把查询语句分解为解析树,通过解析树把查询语句按查询字段、查询表、查询条件,相应应用MLFU、LFU、FP-groupth算法,并通过回归算法计算出按查询字段、查询表、查询条件作为输入得出计算查询语句的缓存阀值计算公式,这样在应用系统进行查询时,通过阀值计算公式,判断查询的数据是否可能在缓存空间中、或是否需要缓存到空间上。本发明专利技术可广泛应用于查询频率大、缓存空间有限、时间要求高的应用系统,作为优化读取关系数据库数据一种方法。

【技术实现步骤摘要】

本专利技术涉及关系数据库的查询缓存优化
,具体涉及一种通过机器学习提高应用系统在关系数据库的空间与时间效率的方法
技术介绍
数据查询缓存在各种关系数据库上普遍都有实现,实现过程基本是,查询数据时,通过解析查询语句,判断要查询的数据库是否存在于缓存中,如果存在则直接从缓存中读取数据并返回;如果数据不存在于缓存中,则从数据文件中读取数据,并保存到缓存中用于下次的数据查询。在这个实现的过程中,由于没有判断数据的读取频率、读取的字段、条件等,在每次读取数据时,都要进行数据的缓存,所以关系数据库每次都要维护一次缓存的操作,如果缓存空间不足,还每次要进行LFU的替换算法,这导致在每次查询时,数据缓存的空间与时间效率较低,需要进行改进。
技术实现思路
本专利技术通过预先机器学习,从而得出缓存阀值计算公式用于数据查询时的阀值计算,判断是否要对数据进行缓存,从而优化了传统数据库在查询是每次都要进行缓存的问题,减少了数据缓存的空间与每次缓存时的中断替换时间,提高了数据查询的效率。本专利技术解决上述技术问题的技术方案是:通过分析特定应用系统的查询语句,把查询语句分解为解析树,通过解析树把查询语句按查询字段、查询表、查询条件,相应应用MLFU、LFU、FP-groupth算法,按查询字段、查询表、查询条件作为输入,通过回归算法计算得出查询语句的缓存阀值计算公式;在应用系统进行查询时,通过阀值计算公式,判断查询的数据是否可能在缓存空间中、或是否需要缓存到空间上。对应用系统特定的查询语句的分析、通过机器学习用回归算法得出缓存阀值计算公式后实现数据查询的优化,分为查询语句机器学习与查询缓存策略两部分。在查询语句机器学习时,需把应用系统的所有查询语句获取到,并对所有的查询语句按查询字段、查询表、查询条件分解为解析树。在所有查询语句分解为解析树后,查询字段、查询表、查询条件分别应用MLFU、LFU、FP-Groupth算法,分别计算出各种查询字段、查询表、查询条件在所有查询语句中的比率,并按从高到低的顺序排序;分析查询字段、查询表、查询条件的数量,对于大于一定比率的查询语句,表示是经常要使用到的,在进行打分时,设置为1,低于一定比率的查询语句,表示不经常使用到,在打分时设置为0,这样三种情况,得出了从0到7的8种分数;通过查询字段、查询表、查询条件的占所有查询结果的比率,与最终的0到7的打分,形成最终的回归分析基础数据,从而得出按查询字段、查询表、查询条件作为输入的查询语句是否需要缓存的阀值计算公式,用于数据查询时的缓存参考。在通过机器学习得出缓存阀值计算公式后,把计算公式写入到缓存系统中,在数据查询输入语句时,系统先对查询语句按查询字段、查询表、查询条件进行分解成解析树,并获取查询字段、查询表、查询条件的在所有查询语句中的占比,输入缓存阀值计算公式,得出查询语句的缓存阀值;当缓存阀值小于应用系统指定的定值时,表示查询语句相对比较少使用到,所以此查询语句查询的数据不需要缓存,在缓存空间上也不会存在,数据直接从数据文件上读取,并返回给用户;当缓存阀值大于等于应用系统指定的定值时,表示查询语句会经常使用到,此查询语句的数据需缓存到空间上,用于以后的数据查询,此时,会在缓存空间上查询数据是否已经缓存,如果缓存,更新最后使用时间并把数据返回给用户;如果没有缓存,需从数据文件上直接读取,并判断缓存空间是否足够放此数据,如果缓存空间不够,需把缓存空间上的数据按LFU算法,把最久没使用的数据替换出去,用于最新的数据的缓存,缓存操作完成后,更新最后使用时间并把数据返回给用户,从而实现数据的查询操作。本专利技术方法是通过对特定应用系统的查询语句进行分析,因为特定的应用系统查询语句是基本固定的,通过对查询语句按查询字段、查询表、查询条件,按MLFU、LFU、FP-Groupth等算法,用机器学习的方法,回归计算得出数据缓存阀值的计算公式,在每次数据查询时,首先对查询语句进行分析并计算出缓存阀值,如果阀值低于缓存值,则数据直接从数据文件中读取并返回,如果阀值大于等于缓存值,则判断数据是否已经存在,如果已经缓存,直接读取,如果未缓存,则从数据块中读取数据后,并保存到空间上,如果空间不足,则按LFU的原则进行替换,从而避免了所有的数据都要进行替换,就算读取次数很小的数据也要做一次缓存、或可能替换缓存中的数据的操作,从而极大提高了数据缓存时的空间与时间的效率。通过此方法,本专利技术优化了传统数据库在查询是每次都要进行缓存的问题,从而减少了数据缓存的空间与每次缓存时的中断替换时间,提高了数据查询的效率。附图说明下面结合附图对本专利技术进一步说明:图1是本专利技术数据查询缓存流程图;图2是本专利技术与现有方法关系数据库缓存的空间对比图;图3是本专利技术与现有方法关系数据库缓存的时间对比图。具体实施方式见图1所示,本专利技术的实现主要包括两部分,机器学习与数据查询,两部分的具体步骤如下:一、机器学习:步骤一、获取特定应用系统的所有查询语句;步骤二、对所有的查询语句、按查询的字段、查询的表、查询的条件进行分析,形成解析树,对于MLFU、LFU、FP-Groupth三种算法,计算出各自的在所有查询语句中的占比;步骤三、通过对比各查询语句的占比,通过打分,把所有查询语句的打分设置为0至7;步骤四、通过步骤二与步骤三,在线性回归上最终得出缓存阀值的计算公工,用于缓存时的阀值计算,如:f(x)=81.3463*x+2.0715*y+21.9744*z-0.1356二、数据查询缓存过程:步骤一、输入应用系统查询语句,并对查询语句按查询字段、查询表、查询条件进行分析,形成解析树;步骤二、对查询语句按查询字段、查询表、查询条件进行打分,按阀值计算公式算出缓存阀值;步骤三、如果缓存阀值小于固定值(如:4.5),则表示此查询的数据块无需缓存,直接从数据文件上读取数据块并返回;步骤四、如果缓存阀值大于等于固定值(如:4.5),则表示此查询的数据块需缓存,数据块有可能已经缓存于空间上,如果已经缓存,则直接从缓存空间中读取;如果缓存空间中没有此数据块,则从数据文件中读取数据块,缓存到空间上;如果缓存空间不够,则对已经存在的所有缓存按LFU替换出空间,用于保存新的缓存;步骤五、缓存操作完成后,返回查询的数据块;如图2、3所示,是关系数据库本文档来自技高网...

【技术保护点】
一种通过机器学习提高应用系统在关系数据库的空间与时间效率的方法,其特征在于:通过分析特定应用系统的查询语句,把查询语句分解为解析树,通过解析树把查询语句按查询字段、查询表、查询条件,相应应用MLFU、LFU、FP‑groupth算法,按查询字段、查询表、查询条件作为输入,通过回归算法计算得出查询语句的缓存阀值计算公式;在应用系统进行查询时,通过阀值计算公式,判断查询的数据是否可能在缓存空间中、或是否需要缓存到空间上。

【技术特征摘要】
1.一种通过机器学习提高应用系统在关系数据库的空间与时间效率的方
法,其特征在于:通过分析特定应用系统的查询语句,把查询语句分解为解析
树,通过解析树把查询语句按查询字段、查询表、查询条件,相应应用MLFU、
LFU、FP-groupth算法,按查询字段、查询表、查询条件作为输入,通过回归算
法计算得出查询语句的缓存阀值计算公式;在应用系统进行查询时,通过阀值
计算公式,判断查询的数据是否可能在缓存空间中、或是否需要缓存到空间上。
2.根据权利要求1所述的提高应用系统在关系数据库的空间与时间效率的
方法,其特征在于:对应用系统特定的查询语句的分析、通过机器学习用回归
算法得出缓存阀值计算公式后实现数据查询的优化,分为查询语句机器学习与
查询缓存策略两部分。
3.根据权利要求1所述的提高应用系统在关系数据库的空间与时间效率的
方法,其特征在于:在查询语句机器学习时,需把应用系统的所有查询语句获
取到,并对所有的查询语句按查询字段、查询表、查询条件分解为解析树。
4.根据权利要求2所述的提高应用系统在关系数据库的空间与时间效率的
方法,其特征在于:在查询语句机器学习时,需把应用系统的所有查询语句获
取到,并对所有的查询语句按查询字段、查询表、查询条件分解为解析树。
5.根据权利要求1至4任一项所述的提高应用系统在关系数据库的空间与
时间效率的方法,其特征在于:在所有查询语句分解为解析树后,查询字段、
查询表、查询条件分别应用MLFU、LFU、FP-Groupth算法,分别计算出各种
查询字段、查询表、查询条件在所有查询语句中的比率,并按从高到低的顺序
排序;
分析查询字段、查询表、查询条件的数量,对于大于一定比率的查询语句,
表示是经常要使用到的,在进行打分时,设置为1,低于一定比率的查询语句,

\t表示不经常使用到,在打分时设置为0,这样三种情况,得出了从0到7的8种
分数;
通过查询字段、查询表、查询条件的占所有查询结果的比率,与最终的0
到7的打分,形成最终的回归分析基础数据,从而得出按查询字段、查询表、
查询条件作为输入的查询语句是否需要缓存的阀值计算公式,用于数据查询时
的缓存参考。
6.根据权利要求1至4任一项所述的提高应用系统在关系数据库的空间与
时间效率的方法,...

【专利技术属性】
技术研发人员:郑锐韬郭树盛季统凯
申请(专利权)人:国云科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1