分享一款MySQL语句优化辅助工具--DBA必备
创始人
2025-03-18 20:51:19
0次

 概述

优化SQL,是DBA常见的工作之一。如何高效、快速地优化一条语句,是每个DBA经常要面对的一个问题。对于一名DBA来说,掌握一门语言配合自己的工作是非常必要的。相对于shell的简单、perl的飘逸,Python是一种严谨的高级语言。其具备上手快、语法简单、扩展丰富、跨平台等多种优点。很多人把它称为一种“胶水”语言,通过大量丰富的类库、模块,可以快速搭建出自己需要的工具。

[[278481]]

今天主要分享一下韩锋大佬自己写的一个“MySQL语句优化辅助工具”,通过这个小工具,可以自动调用命令将上面这些内容一次性推给DBA,大大加速优化的过程。

下面介绍下这个小工具,文末附领取方式。

环境

模块 - MySQLDB

模块 - sqlparse

Python版本 = 2.7.3

1、脚本内容

因为脚本内容比较多,所以就截部分了。

分享一款MySQL语句优化辅助工具--DBA必备

 

分享一款MySQL语句优化辅助工具--DBA必备

2、调用方法

python mysql_tuning.py -p tuning_sql.ini -s '你的sql'

参数说明:

-p 指定配置文件名称

-s 指定SQL语句

3、配置文件

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

分享一款MySQL语句优化辅助工具--DBA必备

4、输出说明

1) 标题部分

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

分享一款MySQL语句优化辅助工具--DBA必备

2) 原始SQL

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

分享一款MySQL语句优化辅助工具--DBA必备

3) 系统级参数

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

分享一款MySQL语句优化辅助工具--DBA必备

4) 优化器开关

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

分享一款MySQL语句优化辅助工具--DBA必备

5) 执行计划

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

分享一款MySQL语句优化辅助工具--DBA必备

6) 优化器改写后的SQL

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

分享一款MySQL语句优化辅助工具--DBA必备

7) 统计信息

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

分享一款MySQL语句优化辅助工具--DBA必备

8) 运行状态信息

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

分享一款MySQL语句优化辅助工具--DBA必备

9) PROFILE详细信息

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

分享一款MySQL语句优化辅助工具--DBA必备

10) PROFILE汇总信息

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

分享一款MySQL语句优化辅助工具--DBA必备

 

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...