1.一种基于强化学习的关系型数据库查询优化方法,其特征在于,包括以下步骤:步骤1:通过树卷积神经网络提取逻辑计划树及优化器状态信息特征;
步骤2:利用强化学习模型获得匹配的优化规则应用顺序;
步骤3:优化器选择适合当前查询的优化规则。
2.根据权利要求1所述的基于强化学习的分布式关系型数据库查询优化方法,其特征在于,所述步骤1具体包括以下子步骤:步骤101:使用树卷积对编码后的逻辑计划树进行状态特征的提取;
步骤102:将可用规则集合标识Flag转换成二进制对应的向量;将规则应用步骤Step采用onehot编码为一维向量;
步骤103:将Flag编码过后的向量与Step编码过后的向量进行拼接并封装成为元组形式,得到一个单节点树形编码,编码树将与逻辑计划编码树一同通过树卷积神经网络进行处理,提取出数据库状态的特征信息。
3.根据权利要求1所述的基于强化学习的分布式关系型数据库查询优化方法,其特征在于,对于树卷积神经网络树中的任意节点,要求其左右孩子都为空或都不为空;在对逻辑计划树这棵左深树编码过程中,如果存在一个节点存在左子树的情况下右孩子节点为空,则统一按照扩展逻辑计划编号21进行编码,表示该节点右子树上没有逻辑算子。
4.根据权利要求1所述的基于强化学习的分布式关系型数据库查询优化方法,其特征在于,所述步骤2具体包括以下子步骤:步骤201:将逻辑计划树及相关信息编码作为状态信息输入;
步骤202:采用强化学习的方法识别状态信息特征,计算每一步应执行的优化规则序号作为输出;
步骤203:以数据库的执行延时作为奖励反馈,重构逻辑优化规则原有应用方法。
5.根据权利要求1或4所述的基于强化学习的分布式关系型数据库查询优化方法,其特征在于,所述优化规则可以被多次选中,增加整个逻辑优化对于不同查询语句的灵活性;对于新添加的规则,只需要放入规则集即可加入模型训练的过程,增加了逻辑优化的可扩展性。
6.根据权利要求4所述的基于强化学习的分布式关系型数据库查询优化方法,其特征在于,所述相关信息编码包括可用规则集合标识Flag和规则应用步骤Step。
7.一种基于强化学习的关系型数据库查询优化系统,其特征在于,包括规则应用与信息采集模块、机器学习模块和数据交换模块;所述规则应用与信息采集模块和机器学习模块通过数据交换模块连接,通过本地 RPC 请求实现数据库与规则应用与信息采集模块和机器学习模块的数据交互;
所述规则应用与信息采集模块用于采集查询优化器在逻辑优化阶段每个规则应用步骤的状态信息,将这些状态信息发送到机器学习模块获得下一步应用的规则,并在数据库中应用规则以完成对计划树的逻辑优化;在查询执行结束时,将执行时间和执行是否成功的信息采集发送到机器学习模块,由机器学习模块转化为奖励信息存储并用于之后的训练过程;
所述机器学习模块接收数据库端发送来的逻辑计划树、规则应用步骤状态信息,并将这些信息编码成为神经网络的输入,通过神经网路模型的计算最终输出下一步建议数据库应用的规则编号,然后在下一次获得状态信息的时候将上一步的奖励转化,并和上一步的操作一起作为经验进行存储,经过一段时间后随机抽取部分经验训练神经网络模型;
所述数据交换模块用于规则应用与信息采集模块和机器学习模块的数据传输,采用RPC本地调用实现;使数据库查询优化器得以和强化学习模型进行交互,实现从SQL输入到按照合理的规则应用顺序进行优化。
8.根据权利要求7所述的基于强化学习的关系型数据库查询优化系统,其特征在于,所述规则应用与信息采集模块通过修改数据内核代码将该模块内嵌在数据库查询引擎中,使数据库在查询正常执行的同时能够外接机器学习模块。
9.根据权利要求7所述的基于强化学习的关系型数据库查询优化系统,其特征在于,所述机器学习模块采用DQN算法搭建了强化学习模型,以逻辑计划树、可用规则集合标识Flag和规则应用步骤Step作为当前状态s传入强化学习模型,通过当前状态s计算执行动作a,以a作为规则序号返回给数据库;数据库获得规则序号后,从规则集中取出对应的优化规则应用到逻辑计划树上。
10.根据权利要求7所述的基于强化学习的关系型数据库查询优化系统,其特征在于,所述机器学习模块对数据库收集到的相关状态信息编码之前,首先需要对逻辑计划树进行反序列化操作,将对节点的编码操作结合到遍历字符串的转化过程中,只需要对逻辑计划树进行一次遍历即可获得编码后的状态作为神经网络的输入。