Python实现MySQL DBA小工具一例

  我们知道MySQL所有的运行状态统计信息都能从“show global status”语句的结果集中查看,该结果集保存的是从MySQL启动到当前时间之间各状态值的“总数”,对我们的分析不友好。在我们日常维护和优化中,我们需要持续的跟踪某些状态值的的变化(增量或者是平均值);或者是在调整某些参数后,观察某些状态值的变化是否符合我们预期等等。

  基于以上这些需求,作者用Python实现了一个小工具。其实也从“MySQL Workbench”这个图形化工具中获得了一点启发,想到做一个命令行下类似的功能。MySQL Workbench中的dashboard中可显示如下图的统计信息,很漂亮哈~

wKiom1dVI53w3a-bAAEnIch64NM659.png

  言归正传,该脚本显示信息的类型分两类:“指定时间内平均值”和“指定时间内增长值”,在命令选项里可指定,首先来看一下命令的帮助信息

wKioL1dVESzAV4PTAAPdOsiSzzU823.png

 

  其中--average选项为查看指定时间平均值,默认查看指定时间内的增长值;-t选项为想查看的信息类型,每一种信息类型在脚本里对应一个元组(即数组):值为该类型所包含的“状态值”。

  这里我本来想做一个比较完美的命令,大家拿来即用,但是应为show status里的状态值太多了,我不用也没必要在脚本里包含所有的。脚本里我只将常用的一些信息包含了进来,并且我更倾向于大家把这个脚本看做是一个易于根据自己情况定制的通用框架(其实就是如果自己关心的信息没有包含在脚本里的话,自己在脚本里添加或修改一个分类即可)。

先看几个例子

  查看指定时间内qps:

wKiom1dWdK2je-iaAAQzJptSKQU068.png

  查看MySQL网络相关状态

wKiom1dVF4PAEl1MAAQGkNEheHE906.png


OK,看完上面截图觉得这小工具还有点用的,接着看代码,代码中注释还是比较详细的,只要有点编程基础,应该是能看的懂的~~

#!/bin/env python3
"""
by l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值