【技术实现步骤摘要】
一种线上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并不会产生明显的问题,更多的是占用更多的资源,小幅 ...
【技术保护点】
【技术特征摘要】
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.一...
【专利技术属性】
技术研发人员:周子彦,
申请(专利权)人:新浪网技术中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。