CN105512184B - 一种提高应用系统在关系数据库的空间与时间效率的方法 - Google Patents
一种提高应用系统在关系数据库的空间与时间效率的方法 Download PDFInfo
- Publication number
- CN105512184B CN105512184B CN201510830217.XA CN201510830217A CN105512184B CN 105512184 B CN105512184 B CN 105512184B CN 201510830217 A CN201510830217 A CN 201510830217A CN 105512184 B CN105512184 B CN 105512184B
- Authority
- CN
- China
- Prior art keywords
- inquiry
- data
- query
- application system
- caching
- 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
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及关系数据库的查询缓存优化技术领域,具体涉及一种通过机器学习提高应用系统在关系数据库的空间与时间效率的方法。本发明方法通过分析特定应用系统的查询语句,把查询语句分解为解析树,通过解析树把查询语句按查询字段、查询表、查询条件,相应应用MLFU、LFU、FP‑groupth算法,并通过回归算法计算出按查询字段、查询表、查询条件作为输入得出计算查询语句的缓存阀值计算公式,这样在应用系统进行查询时,通过阀值计算公式,判断查询的数据是否可能在缓存空间中、或是否需要缓存到空间上。本发明可广泛应用于查询频率大、缓存空间有限、时间要求高的应用系统,作为优化读取关系数据库数据一种方法。
Description
技术领域
本发明涉及关系数据库的查询缓存优化技术领域,具体涉及一种通过机器学习提高应用系统在关系数据库的空间与时间效率的方法。
背景技术
数据查询缓存在各种关系数据库上普遍都有实现,实现过程基本是,查询数据时,通过解析查询语句,判断要查询的数据库是否存在于缓存中,如果存在则直接从缓存中读取数据并返回;如果数据不存在于缓存中,则从数据文件中读取数据,并保存到缓存中用于下次的数据查询。在这个实现的过程中,由于没有判断数据的读取频率、读取的字段、条件等,在每次读取数据时,都要进行数据的缓存,所以关系数据库每次都要维护一次缓存的操作,如果缓存空间不足,还每次要进行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所示,是关系数据库缓存与本发明新算法缓存的空间与时间对比数据;从图表对比可以看出;本发明的方法在空间占用与时间花费上都有明显的提升。
Claims (5)
1.一种通过机器学习提高应用系统在关系数据库的空间与时间效率的方法,其特征在于:通过分析特定应用系统的查询语句,把查询语句分解为解析树,通过解析树把查询语句按查询字段、查询表、查询条件,分别应用MLFU、LFU、fp-groupth算法,按查询字段、查询表、查询条件作为输入,通过回归算法计算得出查询语句的缓存阀值计算公式;在应用系统进行查询时,通过缓存阀值计算公式,判断查询的数据是否可能在缓存空间中、或是否需要缓存到空间上;
在所有查询语句分解为解析树后,查询字段、查询表、查询条件分别应用MLFU、LFU、fp-groupth算法,分别计算出查询字段、查询表、查询条件在所有查询语句中的比率,并按从高到低的顺序排序;
分析查询字段、查询表、查询条件的数量,对于大于一定比率的查询语句,表示是经常要使用到的,在进行打分时,设置为1,低于一定比率的查询语句,表示不经常使用到,在打分时设置为0;得出了从0到7的8种分数;
通过查询字段、查询表、查询条件的占所有查询结果的比率,与最终的0到7的打分,形成最终的回归分析基础数据,从而得出按查询字段、查询表、查询条件作为输入的查询语句的缓存阀值计算公式。
2.根据权利要求1所述的提高应用系统在关系数据库的空间与时间效率的方法,其特征在于:对应用系统特定的查询语句的分析、通过机器学习用回归算法得出缓存阀值计算公式后实现数据查询的优化,分为查询语句机器学习与查询缓存策略两部分。
3.根据权利要求1所述的提高应用系统在关系数据库的空间与时间效率的方法,其特征在于:在查询语句机器学习时,需把应用系统的所有查询语句获取到,并对所有的查询语句按查询字段、查询表、查询条件分解为解析树。
4.根据权利要求2所述的提高应用系统在关系数据库的空间与时间效率的方法,其特征在于:在查询语句机器学习时,需把应用系统的所有查询语句获取到,并对所有的查询语句按查询字段、查询表、查询条件分解为解析树。
5.根据权利要求1至4任一项所述的提高应用系统在关系数据库的空间与时间效率的方法,其特征在于:在通过机器学习得出缓存阀值计算公式后,把计算公式写入到缓存系统中,在数据查询输入语句时,系统先对查询语句按查询字段、查询表、查询条件进行分解成解析树,并获取查询字段、查询表、查询条件的在所有查询语句中的占比,输入缓存阀值计算公式,得出查询语句的缓存阀值;
当缓存阀值小于应用系统指定的定值时,表示查询语句相对比较少使用到,所以此查询语句查询的数据不需要缓存,在缓存空间上也不会存在,数据直接从数据文件上读取,并返回给用户;
当缓存阀值大于等于应用系统指定的定值时,表示查询语句会经常使用到,此查询语句的数据需缓存到空间上,用于以后的数据查询,此时,会在缓存空间上查询数据是否已经缓存,如果缓存,更新最后使用时间并把数据返回给用户;如果没有缓存,需从数据文件上直接读取,并判断缓存空间是否足够放此数据,如果缓存空间不够,需把缓存空间上的数据按LFU算法,把最久没使用的数据替换出去,用于最新的数据的缓存,缓存操作完成后,更新最后使用时间并把数据返回给用户,从而实现数据的查询操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510830217.XA CN105512184B (zh) | 2015-11-25 | 2015-11-25 | 一种提高应用系统在关系数据库的空间与时间效率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510830217.XA CN105512184B (zh) | 2015-11-25 | 2015-11-25 | 一种提高应用系统在关系数据库的空间与时间效率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105512184A CN105512184A (zh) | 2016-04-20 |
CN105512184B true CN105512184B (zh) | 2019-06-21 |
Family
ID=55720166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510830217.XA Active CN105512184B (zh) | 2015-11-25 | 2015-11-25 | 一种提高应用系统在关系数据库的空间与时间效率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105512184B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109976905B (zh) * | 2019-03-01 | 2021-10-22 | 联想(北京)有限公司 | 内存管理方法、装置和电子设备 |
CN112765286A (zh) * | 2021-02-01 | 2021-05-07 | 广州海量数据库技术有限公司 | 一种基于关系数据库的查询方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021875A (zh) * | 2007-03-22 | 2007-08-22 | 金蝶软件(中国)有限公司 | 面向对象的数据库访问方法及系统 |
CN103268343A (zh) * | 2013-05-24 | 2013-08-28 | 北京京东尚科信息技术有限公司 | 将关系数据库和缓存透明结合的系统和方法 |
CN104572979A (zh) * | 2014-12-31 | 2015-04-29 | 北京锐安科技有限公司 | 一种处理结构化查询语言sql的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176974B (zh) * | 2011-12-20 | 2016-01-13 | 国际商业机器公司 | 优化数据库中访问路径的方法和装置 |
-
2015
- 2015-11-25 CN CN201510830217.XA patent/CN105512184B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021875A (zh) * | 2007-03-22 | 2007-08-22 | 金蝶软件(中国)有限公司 | 面向对象的数据库访问方法及系统 |
CN103268343A (zh) * | 2013-05-24 | 2013-08-28 | 北京京东尚科信息技术有限公司 | 将关系数据库和缓存透明结合的系统和方法 |
CN104572979A (zh) * | 2014-12-31 | 2015-04-29 | 北京锐安科技有限公司 | 一种处理结构化查询语言sql的方法及装置 |
Non-Patent Citations (1)
Title |
---|
"数据库结果集缓存的研究与实现";杨永亮;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090115(第1期);第40页第3.3.1节 |
Also Published As
Publication number | Publication date |
---|---|
CN105512184A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11461319B2 (en) | Dynamic database query efficiency improvement | |
CN105320679B (zh) | 一种数据表索引集合生成方法及装置 | |
CN107644073A (zh) | 一种基于深度优先遍历的字段血缘分析方法、系统及装置 | |
WO2017183065A1 (ja) | リレーショナルデータベースのチューニング装置及び方法 | |
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
CN104077407B (zh) | 一种智能数据搜索系统及方法 | |
CN110597844B (zh) | 异构数据库数据统一访问方法及相关设备 | |
CN107783985A (zh) | 一种分布式数据库查询方法、装置及管理系统 | |
CN107291770B (zh) | 一种分布式系统中海量数据的查询方法及装置 | |
CN106547828A (zh) | 一种基于神经网络的数据库缓存系统及方法 | |
CN105512184B (zh) | 一种提高应用系统在关系数据库的空间与时间效率的方法 | |
CN102193993A (zh) | 用于确定字符串信息间相似度信息的方法、装置和设备 | |
CN104036007A (zh) | 一种分布式数据库查询方法及装置 | |
US11188538B2 (en) | Dynamic generated query plan caching | |
CN109241543A (zh) | 一致性翻译术语的预处理技术 | |
US10282351B2 (en) | Using statistics for database partition pruning on correlated columns | |
CN109858025A (zh) | 一种地址标准化语料的分词方法及系统 | |
CN105378724B (zh) | 一种数据查询方法、装置及系统 | |
CN104731908A (zh) | 一种基于etl的数据清洗方法 | |
CN104834730A (zh) | 数据分析系统和方法 | |
CA2510644A1 (en) | Quality of service feedback for technology-neutral data reporting | |
CN105512226B (zh) | 一种查询优化方法及装置 | |
CN105302909B (zh) | 基于分区偏移计算的网络安全日志系统大数据检索方法 | |
CN104778253B (zh) | 一种提供数据的方法和装置 | |
CN106649489A (zh) | 一种地理文本信息数据中的连续skyline查询处理机制 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province Applicant after: G-Cloud Technology Co., Ltd. Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province Applicant before: G-Cloud Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |