CN106547828B - 一种基于神经网络的数据库缓存系统及方法 - Google Patents
一种基于神经网络的数据库缓存系统及方法 Download PDFInfo
- Publication number
- CN106547828B CN106547828B CN201610877968.1A CN201610877968A CN106547828B CN 106547828 B CN106547828 B CN 106547828B CN 201610877968 A CN201610877968 A CN 201610877968A CN 106547828 B CN106547828 B CN 106547828B
- Authority
- CN
- China
- Prior art keywords
- neuron
- characteristic
- neural network
- hidden layer
- data
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于神经网络的数据库缓存系统,包括接入适配模块、分析模块和神经网络;其中:接入适配模块:负责进出数据的适配;分析模块:用于分析用户输入意图;神经网络:包括输入层、隐藏层和输出层;输入层用于接收参数激活隐藏层,隐藏层的每个神经元都包含数据库访问模块、前驱后继神经元路由表、记忆生存周期标识、特征标识和缓存数据集合;输出层用于输出查询结果集至接入适配模块。本发明解决了传统的缓存技术数据无法更新以及缓存状态逐渐恶化造成缓存命中率低的问题,大大提高了缓存的性能和稳定性。解决了传统缓存单一平面的问题,使得子查询相关中间数据可以被缓存,显著减少了数据库多表关联查询的处理时间。
Description
技术领域
本发明涉及信息检索领域,特别是涉及一种基于神经网络的数据库缓存系统及方法。
背景技术
在面临海量访问的网络应用中,大规模的数据读写造成的高磁盘负载,往往会让数据库系统成为整个数据信息系统的性能瓶颈,为了解决这个问题,在现代的数据信息系统中,通常会引入了缓存系统,来降低数据库负载,提高系统整体的性能,由于缓存系统一般将数据保存于内存中,只要命中对应的磁盘负载将为零,而且就算数据保存在磁盘中,其磁盘IO次数都远小于数据库,所以可以大大减少处理等待的时间,其性能差距可能达到几倍甚至几十倍,因此合理的缓存系统已经成为了影响整个数据信息系统性能的关键因素。然而现有的缓存系统,无法主动调节自身状态,随着系统的运行缓存状态的逐渐恶化会带来缓存命中率低的问题。
发明内容
发明目的:本发明的目的是提供一种能够解决现有技术中存在的缺陷的基于神经网络的数据库缓存系统及方法。
技术方案:本发明所述的基于神经网络的数据库缓存系统,包括接入适配模块、分析模块和神经网络;其中:
接入适配模块:负责进出数据的适配;
分析模块:用于分析用户操作意图,并将用户操作意图进行特征化;
神经网络:包括输入层、隐藏层和输出层;输入层用于接收特征化样本并逐步激活隐藏层处理,隐藏层的每个神经元都包含数据库访问模块、前驱后继神经元路由表、记忆生存周期标识、特征标识和缓存数据集合;输出层用于输出查询结果集至接入适配模块。
进一步,所述接入适配模块包括JDBC模拟驱动和MySQL原生协议。
进一步,所述分析模块包括SQL驱动解析引擎和神经网络输入层生成器,其中:
SQL驱动解析引擎:用于分析SQL语句查询意图,将一个多关系表的查询操作拆解成多个单表并互相依赖的查询操作,并转化为系统所能理解的内部数据结构;
神经网络输入层生成器:用于将生成的内部数据结构进行特征化,并转化为神经网络所能理解的包含固定特征条件的特征化样本。
本发明所述的基于神经网络的数据库缓存方法,包括以下步骤:
S1:客户端访问数据库时,通过接入适配模块将数据发送给分析模块;
S2:分析模块分析SQL语句,并根据其意图、参数以及额外信息生成神经网络能够理解的包含固定特征条件的特征化样本;其中,额外信息包括运行环境信息;
S3:将步骤S2得到的特征化样本交由神经网络处理,神经网络包括输入层、隐藏层和输出层,其中隐藏层包含起点神经元、中继神经元和终点神经元;
S4:当操作类型为select时,输入层根据特征化样本中包含的特征条件逐步激活隐藏层神经元,直到输出层输出结果集为止;
S5:如果特征条件全满足,则直接返回此路径上隐藏层终点神经元已经存在的缓存数据给输出层,并回溯此路径上的所有神经元并将记忆周期加1,再进行步骤S8;如果有特征条件没有被满足,则进行步骤S6;
S6:对于没有被满足的特征条件,创建一个满足此特征条件的空隐层神经元,并将特征化样本转入新的空隐层神经元处理,之后判断特征化样本中所有的特征条件是否已满足:如果不满足,则循环执行步骤S6,直到特征化样本中所有特征条件满足并到达起点神经元为止,激活起点神经元,路径上神经元的缓存数据反向流动到终点神经元,最后隐藏层终点神经元将最终处理完成的缓存数据返回给输出层;
S7:当操作类型为insert、update和delete时,神经网络根据特征化样本中包含的特征条件按照S4中的激活方式激活相关已存在的隐藏层神经元,被激活的神经元逐步将其缓存的数据调整至最新状态;
S8:输出层返回数据给接入适配模块,接入适配模块生成结果集给客户端。
进一步,所述步骤S2中的特征化样本包括:
1)操作的类型;
2)拆解的单一特征条件以及参数;
3)数据表;
4)特征条件之间的关联依赖关系。
进一步,所述步骤S4中激活隐藏层神经元的方法为:从终点神经元开始同层匹配特征条件,如果匹配成功则激活相应的神经元,如果匹配不成功则根据特征样本包含的当前特征条件新建满足当前特征条件的空隐层神经元,直至满足所有的特征条件,并到达起点神经元为止。
有益效果:与现有技术相比,本发明具有如下的有益效果:
1)基于神经网络实现了一种缓存结构,使缓存能够主动调整其内部数据状态,解决了传统的缓存技术数据无法主动调节自身状态以及缓存状态逐渐恶化造成缓存命中率低的问题,大大提高了缓存的性能和稳定性;
2)基于神经网络的多层次结构,解决了传统缓存单一平面的问题,使得子查询相关中间数据可以被缓存,显著减少了数据库多表关联查询的处理时间,将多表连接查询化为单一表查询,使得数据库索引效率得以充分释放,大大提高了数据库系统性能;
3)通过适配器模式,解决传统缓存技术代码侵入性高的问题,极大降低缓存系统接入难度。
附图说明
图1为本发明具体实施方式的系统框图;
图2为本发明具体实施方式的神经网络的结构框图。
图3为本发明具体实施方式的缓存路径结构框图
具体实施方式
本具体实施方式公开了一种基于神经网络的数据库缓存系统,如图1所示,包括接入适配模块、分析模块和神经网络;其中:
接入适配模块:负责进出数据的适配;包括JDBC模拟驱动、MySQL原生协议等接入实现,可以降低调用方接入难度,如果使用语言标准接口如JDBC,甚至可以不用修改其代码,将系统的代码侵入性降低为零。
分析模块:用于分析用户操作意图,并将用户操作意图进行特征化。包括SQL驱动解析引擎,用于分析SQL语句查询意图,将一个多关系表的查询操作拆解成多个单表并互相依赖的查询操作,并转化为系统所能理解的内部数据结构;神经网络输入层生成器,用于将上述生成的内部数据结构进行特征化,并转化为神经网络所能理解的包含固定特征条件的特征化样本。
神经网络:负责数据处理,包括输入层、隐藏层和输出层,如图2所示。输入层用于接收特征化样本并逐步激活隐藏层处理,隐藏层的每个神经元都包含数据库访问模块、前驱后继神经元路由表、记忆生存周期标识、特征标识和缓存数据集合;输出层用于输出查询结果集至接入适配模块,接入适配模块将结果集转换成客户端标准结果集返回。
本具体实施方式还公开了一种基于神经网络的数据库缓存方法,包括以下步骤:
S1:客户端通过JDBC或者ADO.NET等标准接口访问数据库时,通过接入适配模块将数据发送给分析模块,其中包括了需要执行的SQL、参数以及额外信息,额外信息包括运行环境信息。
S2:分析模块分析SQL语句,并根据其意图、参数以及额外信息生成神经网络能够理解的包含固定特征条件的特征化样本;特征化样本包括:
1)操作的类型;
2)拆解的单一特征条件以及参数;
3)数据表;
4)特征条件之间的关联依赖关系。
S3:将步骤S2得到的特征化样本交由神经网络处理,神经网络包括输入层、隐藏层和输出层,其中隐藏层包含起点神经元、中继神经元和终点神经元。其中,起点神经元是没有前驱只有后继的神经元,中继神经元是既有前驱又有后继的神经元,终点神经元是只有前驱没有后继的神经元。
S4:当操作类型为select时,输入层根据特征化样本中包含的特征条件逐步激活隐藏层神经元,直到输出层输出结果集为止。激活方法如下:
从终点神经元开始同层匹配特征条件,如果匹配成功则激活相应的神经元,如果匹配不成功则根据特征样本包含的当前特征条件新建满足当前特征条件的空隐层神经元,直至满足所有的特征条件,并到达起点神经元为止。
S5:如果特征条件全满足,则直接返回此路径上隐藏层终点神经元已经存在的缓存数据给输出层,并回溯此路径上的所有神经元并将记忆周期加1,再进行步骤S8;如果有特征条件没有被满足,则进行步骤S6;
S6:对于没有被满足的特征条件,创建一个满足此特征条件的空隐层神经元,并将特征化样本转入新的空隐层神经元处理,之后判断特征化样本中所有的特征条件是否已满足:如果不满足,则循环执行步骤S6,直到特征化样本中所有特征条件满足并到达起点神经元为止,激活起点神经元,路径上神经元的缓存数据反向流动到终点神经元,最后隐藏层终点神经元将最终处理完成的缓存数据返回给输出层;
S7:当操作类型为insert、update和delete时,神经网络根据特征化样本中包含的特征条件按照S4中的激活方式激活相关已存在的隐藏层神经元,被激活的神经元逐步将其缓存的数据调整至最新状态。
例如:
为了保证数据时效性,每个神经元都有固定初始记忆周期(例如给定值位1000,意味着神经网络进行1000次思考后仍未激活该神经元,则该神经元缓存会被丢弃),当每次神经网络被激活时,隐层上被激活路径上的神经元记忆周期加1,反之减1,当神经元记忆周期为0时,此神经元将被神经网络丢弃,防止过期数据浪费存储空间。
S8:输出层返回数据给接入适配模块,接入适配模块返回相应的JDBC或ADO.NET等标准接口的结果集给客户端。
下面介绍一个实施例:
分析模块接收到select*from student where id in(select stuid fromclassroom where name=’小三班’)的SQL语句,SQL驱动解析引擎会将其解析成二段:
A:特征select stuid from classroom where name=’小三班’
B:特征select*from student where id in A特征
解析完成后上述输入将生成一个包含特征条件A和特征条件B的特征化样本,其中B特征为终点特征,A特征为起点特征,,将之作为输入层向量。
神经网络开始查找深度为1的神经元中是否存在匹配B特征的神经元,如果有,则激活此神经元,如果没有则创建一个满足B特征的空神经元并做为终点神经元,然后继续匹配A特征,如果深度为2的同层中含有A特征的神经元则激活,如果没有则依然创建一个满足A特征的空神经元并作为起点神经元,此时一个满足所有特征条件的缓存路径已经生成完毕,假设A被激活时缓存数据为A1[1,2,3,4],此数据将流动至B中,B利用A1数据生成类似select*from student where id=1or id=2or id=3or id=4的SQL从数据库拉取数据缓存并返回;这样就形成了一个有效的缓存路径,当后续再有类似诸如查询’小三班’学生家长信息这样的操作时,其路径上的缓存数据则可以被命中,数据库只需根据此缓存查询一次家长表即可返回终点数据,而路径上的中间状态数据则可以被其他特征条件所使用。
Claims (3)
1.一种基于神经网络的数据库缓存方法,其特征在于:包括以下步骤:
S1:客户端访问数据库时,通过接入适配模块将数据发送给分析模块;
S2:分析模块分析SQL语句,并根据其意图、参数以及额外信息生成神经网络能够理解的包含固定特征条件的特征化样本;其中,额外信息包括运行环境信息;
S3:将步骤S2得到的特征化样本交由神经网络处理,神经网络包括输入层、隐藏层和输出层,其中隐藏层包含起点神经元、中继神经元和终点神经元;
S4:当操作类型为select时,输入层根据特征化样本中包含的特征条件逐步激活隐藏层神经元,直到输出层输出结果集为止;
S5:如果特征条件全满足,则直接返回此路径上隐藏层终点神经元已经存在的缓存数据给输出层,并回溯此路径上的所有神经元并将记忆周期加1,再进行步骤S8;如果有特征条件没有被满足,则进行步骤S6;
S6:对于没有被满足的特征条件,创建一个满足此特征条件的空隐层神经元,并将特征化样本转入新的空隐层神经元处理,之后判断特征化样本中所有的特征条件是否已满足:如果不满足,则循环执行步骤S6,直到特征化样本中所有特征条件满足并到达起点神经元为止,激活起点神经元,路径上神经元的缓存数据反向流动到终点神经元,最后隐藏层终点神经元将最终处理完成的缓存数据返回给输出层;
S7:当操作类型为insert、update和delete时,神经网络根据特征化样本中包含的特征条件按照S4中的激活方式激活相关已存在的隐藏层神经元,被激活的神经元逐步将其缓存的数据调整至最新状态;
S8:输出层返回数据给接入适配模块,接入适配模块生成结果集给客户端。
2.根据权利要求1所述的基于神经网络的数据库缓存方法,其特征在于:所述步骤S2中的特征化样本包括:
1)操作的类型;
2)拆解的单一特征条件以及参数;
3)数据表;
4)特征条件之间的关联依赖关系。
3.根据权利要求1所述的基于神经网络的数据库缓存方法,其特征在于:所述步骤S4中激活隐藏层神经元的方法为:从终点神经元开始同层匹配特征条件,如果匹配成功则激活相应的神经元,如果匹配不成功则根据特征样本包含的当前特征条件新建满足当前特征条件的空隐层神经元,直至满足所有的特征条件,并到达起点神经元为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610877968.1A CN106547828B (zh) | 2016-09-30 | 2016-09-30 | 一种基于神经网络的数据库缓存系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610877968.1A CN106547828B (zh) | 2016-09-30 | 2016-09-30 | 一种基于神经网络的数据库缓存系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106547828A CN106547828A (zh) | 2017-03-29 |
CN106547828B true CN106547828B (zh) | 2019-12-06 |
Family
ID=58368423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610877968.1A Active CN106547828B (zh) | 2016-09-30 | 2016-09-30 | 一种基于神经网络的数据库缓存系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106547828B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11216437B2 (en) | 2017-08-14 | 2022-01-04 | Sisense Ltd. | System and method for representing query elements in an artificial neural network |
US20190050724A1 (en) | 2017-08-14 | 2019-02-14 | Sisense Ltd. | System and method for generating training sets for neural networks |
US11256985B2 (en) | 2017-08-14 | 2022-02-22 | Sisense Ltd. | System and method for generating training sets for neural networks |
CN110113432A (zh) * | 2019-05-23 | 2019-08-09 | 吉林大学 | 一种基于深度学习算法的Web API请求适配方法 |
CN111368974B (zh) * | 2020-02-25 | 2023-11-21 | 北京声智科技有限公司 | 一种fsmn数据处理方法、装置、介质和设备 |
CN112395316B (zh) * | 2020-11-10 | 2023-08-29 | 杭州萤石软件有限公司 | 一种数据查询方法及装置 |
CN116910100B (zh) * | 2023-09-08 | 2023-11-28 | 湖南立人科技有限公司 | 用于低代码平台的缓存数据处理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594927A (zh) * | 2012-04-05 | 2012-07-18 | 高汉中 | 基于神经网络的云端服务器结构 |
CN104021176B (zh) * | 2014-06-03 | 2016-08-17 | 合一信息技术(北京)有限公司 | 具有高度可扩展性的广告匹配方法和系统 |
CN104050276B (zh) * | 2014-06-26 | 2017-08-01 | 北京思特奇信息技术股份有限公司 | 一种分布式数据库的缓存处理方法及系统 |
CN105224613A (zh) * | 2015-09-17 | 2016-01-06 | 西安未来国际信息股份有限公司 | 基于数据联邦技术的异构数据源整合系统及其整合方法 |
CN105630982A (zh) * | 2015-12-25 | 2016-06-01 | 中国民航信息网络股份有限公司 | 航班数据缓存方法及系统 |
-
2016
- 2016-09-30 CN CN201610877968.1A patent/CN106547828B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106547828A (zh) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106547828B (zh) | 一种基于神经网络的数据库缓存系统及方法 | |
CN110489445B (zh) | 一种基于多形态复合的海量数据快速查询方法 | |
CA2562281C (en) | Partial query caching | |
CN108170734A (zh) | 一种智能化运维机器人 | |
CN106407360B (zh) | 一种数据的处理方法及装置 | |
US9753977B2 (en) | Method and system for managing database | |
US20040220904A1 (en) | Information retrieval system and method using index ANDing for improving performance | |
US11176520B2 (en) | Email content modification system | |
CN104516979A (zh) | 一种基于二次检索的数据查询方法及系统 | |
CN111177303B (zh) | 基于phoenix的Hbase二级全文索引方法及系统 | |
WO2018035799A1 (zh) | 数据查询方法、应用和数据库服务器、中间件及系统 | |
CN107291770B (zh) | 一种分布式系统中海量数据的查询方法及装置 | |
CN105740383A (zh) | 一种大数据平台下数据库与缓存的数据一致性方法及系统 | |
CN110688397A (zh) | 一种基于sql的分布式数据统一访问系统及方法 | |
CN104636389A (zh) | 实现Hbase数据库实时查询的方法和系统 | |
CN105843882A (zh) | 一种信息匹配方法及装置 | |
KR20200094074A (ko) | 인덱스 관리 방법, 장치, 기기 및 저장 매체 | |
CN113568938A (zh) | 数据流处理方法、装置、电子设备及存储介质 | |
CN107145549A (zh) | 一种数据库缓存控制方法以及系统 | |
CN109145009A (zh) | 一种基于SQL检索ElasticSearch的方法 | |
US20170357697A1 (en) | Using adaptors to manage data indexed by dissimilar identifiers | |
CN103049506B (zh) | 移动设备的数据缓存方法及其系统 | |
CN115827676A (zh) | Sql子查询的执行方法、装置、终端设备以及介质 | |
CN116049193A (zh) | 数据存储方法及装置 | |
CN105787029A (zh) | 一种基于solr的关键字词识别办法 |
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 |