MySQL 语句优化工具 开源版本

释放双眼,带上耳机,听听看~!

相信很多朋友都有LAMP或LNAMP建站,那么必然会有使用MySQL,对于非DBA的我们,优化SQL语句总是无从下手,大叔偶然之下,发现网上有大佬写的一个MySQL的语句优化工具,Python版本的,而且代码全公开,算是开源吧。

有需要的朋友可以前往下载。

工具说明

1、准备条件

模块 – MySQLDB

模块 – sqlparse

Python版本 = 2.7.3 (2.6.x版本应该也没问题,3.x版本没测试)

2、调用方法

python mysql_tuning.py -p tuning_sql.ini -s 'select xxx'

1) 参数说明

-p 指定配置文件名称

-s 指定SQL语句

3、配置文件

共分两节信息,分别是[database]描述数据库连接信息,[option]运行配置信息。

1) [database]

server_ip   = 127.0.0.1

db_user     = testuser

db_pwd      = testpwd

db_name     = test

2) [option]

sys_parm    = ON     //是否显示系统参数

sql_plan    = ON //是否显示执行计划

obj_stat    = ON //是否显示相关对象(表、索引)统计信息

ses_status  = ON //是否显示运行前后状态信息(激活后会真实执行SQL)

sql_profile = ON   //是否显示PROFILE跟踪信息(激活后会真实执行SQL)

4、输出说明

1) 标题部分:===== BASIC INFORMATION =====

包含运行数据库的地址信息及数据版本信息。

2) 原始SQL:===== ORIGINAL SQL TEXT =====

用户执行输入的SQL,这部分主要是为了后续对比SQL改写时使用。语句显示时使用了格式化。

3) 系统级参数:===== SYSTEM PARAMETER =====

脚本选择显示了部分与SQL性能相关的参数。这部分是写死在代码中的,如需扩展需要修改脚本。

4) 优化器开关:===== OPTIMIZER SWITCH =====

优化器相关的一些参数,通过调整这些参数可以人为干预优化器行为。

5) 执行计划:===== SQL PLAN =====

就是调用explain extended的输出结果。如果结果过长,可能出现显示串行的问题(暂时未解决)。

6) 优化器改写后的SQL:===== OPTIMIZER REWRITE SQL =====

通过这里可判断优化器是否对SQL进行了某种优化(例如子查询的处理)。

7) 统计信息:===== OBJECT STATISTICS =====

在SQL语句中所有涉及到的表及其索引的统计信息都会在这里显示出来。

8) 运行状态信息:===== SESSION STATUS (DIFFERENT) =====

在会话级别对比了执行前后的状态(SHOW STATUS),并将出现变化的部分显示出来。需要注意的是,因为收集状态数据是采用SELECT方式,会造成个别指标的误差(例如Com_select)。

9) PROFILE详细信息:===== SQL PROFILING(DETAIL)=====

调用SHOW PROFILE得到的详细信息。

10) PROFILE汇总信息:===== SQL PROFILING(SUMMARY)=====

根据PROFILE的资源消耗情况,显示不同阶段消耗对比情况(TOP N),直观显示”瓶颈”所在。

工具下载

优化工具

提取码:无
解压码:无

原作者:韩锋

给TA打赏
共{{data.count}}人
人已打赏
资源分享

【转】Frp配置面板 开源

2019-6-18 19:00:12

干货分享资源分享

丢失数据不用怕——免费数据恢复软件大汇总

2019-6-25 22:11:50

免责声明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站除大叔原创外的资源均来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请通过私信与我们联系处理。敬请谅解!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索