一种线上sql智能优化方法及系统技术方案

技术编号:31310715 阅读:43 留言:0更新日期:2021-12-12 21:41
本发明专利技术实施例提供一种线上sql智能优化方法及系统,包括:获取在MySQL数据库管理系统平台上使用的满足预设条件的sql语句及sql语句的相关信息;分析满足预设条件的sql语句及sql语句的相关信息,形成sql优化建议以对sql功能进行优化;根据sql优化建议对MySQL数据库管理系统平台的sql功能进行优化,前端采用sql功能优化后形成的sql语句对MySQL数据库管理系统平台内的数据进行相应操作。及时排查线上所有的sql语句,一旦发现可以优化的sql就会自动优化,在问题发生前将其解决或暴露出来。在问题发生前将其解决或暴露出来。在问题发生前将其解决或暴露出来。

【技术实现步骤摘要】
一种线上sql智能优化方法及系统


[0001]本专利技术涉及sql优化诊断领域,具体涉及一种线上sql智能优化方法及系统。

技术介绍

[0002]MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言
‑‑
结构化查询语言(SQL)进行数据库管理。
[0003]通过使用规划的sql语句,可以对MySQL中的数据实现增加,删除,修改,查询操作。在实际的应用过程中,MySQL会存放大量的数据,为了能够更高效的操作数据,需要在MySQL的数据表中增加索引,合理的使用索引可以使增删改查的操作效率提升,提升的效率可以达到成千上万倍。在生产环境中,每一条执行的sql都应该正确的使用索引,而缺少必要的索引或者没有正确的使用索引会极大的拖慢整个MySQL服务的效率,甚至引发故障。
[0004]在实现本专利技术过程中,申请人发现现有技术中至少存在如下问题:
[0005]1、现有的生产环境中,MySQL的维护方为数据库管理员(DBA)团队,MySQL的使用方为业务开发团队,开发团队对sql的使用方式,索引的使用缺乏全面的了解,对数据库内部的运行机制存在认识片面的问题,导致在使用MySQL的过程中,会遇到性能瓶颈,严重会影响MySQL服务稳定性。另一方面随着使用时间的增长,MySQL中的数据量会不断的增长,之前运行良好的sql命令也会由于数据量的变大而达到瓶颈。
[0006]2、大部分的没有正确使用的sql并不会产生明显的问题,更多的是占用更多的资源,小幅的拖慢执行速度,大量的这种隐形的问题难以及时的发现,但实际造成了巨量的资源浪费,某些场景下这些小问题造成的影响会急剧扩大,造成故障,进而影响服务稳定性。
[0007]3、对于DBA团队而言,由于承接了大量的业务团队的数据,其使用的sql数量非常巨大,没有精力和时间去人工排查sql的使用是否合理,当发现某些sql有问题时,往往该sql已经造成了严重的影响,处理问题处于非常被动的状态。

技术实现思路

[0008]本专利技术实施例提供一种线上sql智能优化方法及系统,及时排查线上所有的sql语句,一旦发现可以优化的sql语句就会自动优化,在问题发生前将其解决或暴露出来。
[0009]为达上述目的,一方面,本专利技术实施例提供一种线上sql智能优化方法,包括:
[0010]获取在MySQL数据库管理系统平台上使用的满足预设条件的sql语句及sql语句的相关信息;
[0011]分析满足预设条件的sql语句及sql语句的相关信息,形成sql优化建议以对sql功能进行优化;其中,sql语句用于采用索引对MySQL数据库管理系统平台内的数据进行操作,所述操作包括:增加、删除、修改或查询;
[0012]根据sql优化建议对MySQL数据库管理系统平台的sql功能进行优化,前端采用sql功能优化后形成的sql语句对MySQL数据库管理系统平台内的数据进行相应操作;和/或,根据sql优化建议自动在MySQL数据库管理系统平台的后台对sql功能进行优化,采用sql功能
优化后形成的sql语句和对sql语句的索引在MySQL数据库管理系统平台上进行数据分析,数据分析结果用于指导更新sql使用规范。
[0013]另一方面,本专利技术实施例提供一种线上sql智能优化系统,包括:
[0014]数据采集单元,用于获取在MySQL数据库管理系统平台上使用的满足预设条件的sql语句及sql语句的相关信息;
[0015]优化单元,用于分析满足预设条件的sql语句及sql语句的相关信息,形成sql优化建议以对sql功能进行优化;其中,sql语句用于采用索引对MySQL数据库管理系统平台内的数据进行操作,所述操作包括:增加、删除、修改或查询;
[0016]运用单元,用于根据sql优化建议对MySQL数据库管理系统平台的sql功能进行优化,前端采用sql功能优化后形成的sql语句对MySQL数据库管理系统平台内的数据进行相应操作;和/或,根据sql优化建议自动在MySQL数据库管理系统平台的后台对sql功能进行优化,采用sql功能优化后形成的sql语句和对sql语句的索引在MySQL数据库管理系统平台上进行数据分析,数据分析结果用于指导更新sql使用规范。
[0017]上述技术方案具有如下有益效果:及时排查线上所有的sql语句,一旦发现可以优化的sql语句就会自动优化,在问题发生前将其解决或暴露出来。
附图说明
[0018]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1是本专利技术实施例的一种线上sql智能优化方法的流程图;
[0020]图2是本专利技术实施例的一种线上sql智能优化系统的结构图;
[0021]图3是本专利技术实施例的线上sql智能优化平台的架构图;
[0022]图4是本专利技术实施例的前端页面获取的sql结构优化建议和索引优化建议的展示页面;
[0023]图5是本专利技术实施例的执行优化建议后的优化记录展示页面。
具体实施方式
[0024]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0025]如图1所示,结合本专利技术的实施例,提供一种线上sql智能优化方法,包括:
[0026]S101:获取在MySQL数据库管理系统平台上使用的满足预设条件的sql语句及sql语句的相关信息;
[0027]S102:分析满足预设条件的sql语句及sql语句的相关信息,形成sql优化建议以对sql功能进行优化;其中,sql语句用于采用索引对MySQL数据库管理系统平台内的数据进行操作,所述操作包括:增加、删除、修改或查询;
[0028]S103:根据sql优化建议对MySQL数据库管理系统平台的sql功能进行优化,前端采用sql功能优化后形成的sql语句对MySQL数据库管理系统平台内的数据进行相应操作;和/或,根据sql优化建议自动在MySQL数据库管理系统平台的后台对sql功能进行优化,采用sql功能优化后形成的sql语句和对sql语句的索引在MySQL数据库管理系统平台上进行数据分析,数据分析结果用于指导更新sql使用规范。
[0029]优选地,在步骤101中,所述获取在MySQL数据库管理系统平台上使用的满足预设条件的sql语句,具体包括:
[0030]使用抓包工具实时采集在MySQL数据库管理系统平台内运行的慢查询slowlog,自所述slowlog中获取本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种线上sql智能优化方法,其特征在于,包括:获取在MySQL数据库管理系统平台上使用的满足预设条件的sql语句及sql语句的相关信息;分析满足预设条件的sql语句及sql语句的相关信息,形成sql优化建议以对sql功能进行优化;其中,sql语句用于采用索引对MySQL数据库管理系统平台内的数据进行操作,所述操作包括:增加、删除、修改或查询;根据sql优化建议对MySQL数据库管理系统平台的sql功能进行优化,前端采用sql功能优化后形成的sql语句对MySQL数据库管理系统平台内的数据进行相应操作;和/或,根据sql优化建议自动在MySQL数据库管理系统平台的后台对sql功能进行优化,采用sql功能优化后形成的sql语句和对sql语句的索引在MySQL数据库管理系统平台上进行数据分析,数据分析结果用于指导更新sql使用规范。2.根据权利要求1所述的线上sql智能优化方法,其特征在于,所述获取在MySQL数据库管理系统平台上使用的满足预设条件的sql语句,具体包括:使用抓包工具实时采集在MySQL数据库管理系统平台内运行的慢查询slowlog,自所述slowlog中获取所记录的sql语句;其中,所述慢查询slowlog用于记录在MySQL数据库管理系统平台内运行时长超过预设时长阈值的sql语句。3.根据权利要求1所述的线上sql智能优化方法,其特征在于,在所述获取在MySQL数据库管理系统平台上使用的满足预设条件的sql语句之后,还包括:提取sql语句的sql指纹,根据sql指纹识别填充内容相同的sql语句,对填充内容相同、且sql指纹相同的sql语句进行去重,得到去重后的sql语句,将所述去重后的sql语句及其相关信息用于对sql功能进行优化;其中,所述sql指纹是指用于形成某类sql语句的预设结构。4.根据权利要求3所述的线上sql智能优化方法,其特征在于,所述sql语句的相关信息包括:sql语句的来源ip、所在数据库、索引所在表、所属业务;所述分析满足预设条件的sql语句及sql语句的相关信息,具体包括:对去重后的sql指纹、去重后的sql语句的填充内容、以及去重后的sql语句的相关信息进行分析,形成sql优化建议;所述sql优化建议包括如下之一:如何修改sql指纹结构,如何建立sql语句合适的索引、以及如何修改索引所在表结构。5.根据权利要求1所述的线上sql智能优化方法,其特征在于,还包括:在根据sql优化建议对MySQL数据库管理系统平台的sql功能进行优化之前,对sql优化建议进行验证;所述对sql优化建议进行验证,具体包括:通过MySQL数据库管理系统平台的后台根据sql优化建议在MySQL数据库管理系统平台修改sql指纹结构、修改索引、和/或、修改索引所在表结构,所述修改索引所在表结构用于在索引所在表里添加新索引,并根据修改后的sql指纹结构生成sql语句、通过相应的索引对所生成的sql语句进行索引以验证sql优化建议;之后通过MySQL命令获得关于sql语句的执行计划,所述关于sql语句的执行计划包括该条sql语句执行的具体情况,通过具体情况判断对sql语句的执行效率;当无法通过MySQL数据库管理系统平台的后台对sql优化建议进行验证时,通过在MySQL数据库管理系统平台的后台根据优化建议在MySQL数据库管理系统平台添加索引、
和/或、修改索引,且在添加索引之前修改索引所在表结构,使用MySQL数据库管理系统平台的前端根据sql优化建议修改sql指纹结构;前端根据修改后的sql指纹结构生成sql语句,通过相应的索引对所生成的sql语句进行索引,实现对MySQL数据库管理系统平台内的数据进行相应操作;之后通过MySQL命令获得所述关于sql语句的执行计划。6.一...

【专利技术属性】
技术研发人员:周子彦
申请(专利权)人:新浪网技术中国有限公司
类型:发明
国别省市:

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

1