背景:
数据库的工做中,最多见就是慢sql优化了,可是DBA怎么才能从这种繁杂的工做中抽出身来,比前就是本身去数据库里查,或者其余的途径发现一个慢sql,而后就丢给开发,DBA就像一个后妈同样在跟在屁股后面去催开发优化,这个方式不但工做效率低下,也影响消耗DBA的时间,DBA应该从这些平常繁杂的事情中抽身出来去对接业务,研究新技术,架构等,更多时间去作一些更加有价值的事情
解决方案:
目前公司的主要业务都在放在阿里云的RDS上,阿里云提供接口去访问慢sql日志
一,原数据准备
1,写一个小程序定时去抽取全部实例的慢sql存放在表中
2,把全部的sql打上标签,方便后面的分析
3,输出慢sql的执行计划并存储在表中
二,数据分析和慢sql处理流程
1,经过这些原数据,从sql执行时间,次数,扫描的行数,排序,索引的使用状况等多个维度来分析sql,并输出分析结果
2,把通过处理的慢sql和tapd项目管理系统打通,把每一个sql自动分配到相关的开发责任人
3,输出优化结果报表,每一个项目每周的慢sql优化状况
三总结:
1,经过这种方式能够减小DBA的工做量
2,经过平台来管理和跟踪慢sql的优化,会让整个工做流更加清晰和高效
3,经过报表让整个优化工做更加清晰,调动开发积极性,让得优化工做能够量化前端
四,代码和结果截图:
1,并发拉取慢sql:mysql
2,结果生成Htmlsql
3,生成报表:数据库
结果展现:
1,慢sql日志:小程序
2,tapd工单:
3,报表:架构
唠叨:
1,由于代码也比较多,因此只是随便贴了一点代码
2,只是展现其中一些输出结果
3,目前尚未作成平台,由于俺的前端开发还不大会,哈哈!目前先作成这样子,可是这样也能有效提升工做效率了
4,在这里只抛砖引玉,和你们分享一下本身的一些思路,欢迎你们留言,期待大牛的方案和指导,谢谢并发