[发明专利]一种基于proxy的MySQL执行计划影响方法及系统在审
| 申请号: | 202211549659.3 | 申请日: | 2022-12-05 |
| 公开(公告)号: | CN116108045A | 公开(公告)日: | 2023-05-12 |
| 发明(设计)人: | 徐晓剑;邓琼;陈建锋;刘文涛 | 申请(专利权)人: | 中信银行股份有限公司 |
| 主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/245 |
| 代理公司: | 北京市兰台律师事务所 11354 | 代理人: | 窦雅利;张峰 |
| 地址: | 100020 北京市朝阳区光*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 proxy mysql 执行 计划 影响 方法 系统 | ||
本发明涉及一种基于proxy的MySQL执行计划影响方法及系统,包括:接收待处理SQL语句;基于预先配置的语句匹配规则通过语句匹配方法对待处理语句进行匹配,得到匹配后的SQL语句;将匹配后的SQL语句基于预先配置的语句改写规则通过语句改写方法进行改写,得到改写后的SQL语句;执行改写后的SQL语句。采用本发明所述一种基于proxy的MySQL执行计划影响方法及系统,依据即时生效的SQL语句规则和优化规则,改写应用的SQL语句,增加优化提示后再发送MySQL数据库执行,实现对数据库执行计划的影响。
技术领域
本发明涉及数据库技术领域,尤其涉及一种基于proxy的MySQL执行计划影响方法及系统。
背景技术
MySQL的执行计划的生成,取决于表的统计信息、索引情况,内部按照成本计算找到它认为的最优的执行计划。问题在于,成本估算并不是真实的执行计划的精确计算,而是一个粗略的估算。两个执行计划完全按照成本估算值的大小确定优劣,必然会存在一个临界点。该临界点的两侧,会导致两个截然不同的执行计划,虽然这两个执行计划估算值相差不大,但对于实际执行时间上存在很大的差异。因此,MySQL也提供了人工指定执行计划也即提供Hint(优化提示)的方式,强制优化器使用用户指定的优化方式。另外,受限于MySQL的优化器能力,对于语义相同的语句,不同的写法导致内部选择不同的执行计划,从而导致同样语义的语句,不同的写法,执行计划差别巨大。此时,需要一种低成本的实时(不需要应用重新上版)即能实现线上语句的优化执行,保障系统的平稳运行。
发明内容
为解决现有技术的不足,本发明提出一种基于proxy的MySQL执行计划影响方法及系统,依据即时生效的SQL语句规则和优化规则,改写应用的SQL语句,增加优化提示后再发送MySQL数据库执行,实现对数据库执行计划的影响。
为实现以上目的,本发明所采用的技术方案包括:
一种基于proxy的MySQL执行计划影响方法,其特征在于,包括:
S1、接收待处理SQL语句;
S2、基于预先配置的语句匹配规则通过语句匹配方法对待处理语句进行匹配,得到匹配后的SQL语句;
S3、将匹配后的SQL语句基于预先配置的语句改写规则通过语句改写方法进行改写,得到改写后的SQL语句;
S4、执行改写后的SQL语句。
进一步地,在执行步骤S1之前还包括:配置语句匹配规则和语句改写规则。
进一步地,所述语句匹配方法包括:基于SQL的语法分析方法和字符串的字面值匹配方法。
进一步地,所述语句改写方法包括:改变语句结构的改写方法和不改变语句的结构仅增加优化提示的改写方法。
进一步地,所述基于SQL的语法分析方法,包括:通过SQL语句的抽象语法树方法,将常量变为参数占位符号。
进一步地,所述字符串的字面值匹配方法,包括:
将待处理SQL语句划分为若干个单词;
将若干个单词与预先配置的语句匹配规则逐个比较;
若干个单词全部包含在预先配置的匹配规则中,则待处理SQL语句满足匹配规则。
进一步地,所述不改变语句的结构,仅增加优化提示的改写方法,包括:在待处理SQL语句的第N个单词后增加优化提示,优化提示的内容由验证后得到。
本发明还涉及一种基于proxy的MySQL执行计划影响系统,其特征在于,包括:
语句接收模块,用于接收待处理SQL语句;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中信银行股份有限公司,未经中信银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211549659.3/2.html,转载请声明来源钻瓜专利网。





