您当前的位置:首页 > 电脑百科 > 数据库 > MYSQL

强烈推荐一款MySQL语句优化辅助工具,值得收藏

时间:2019-10-09 09:27:09  来源:  作者:

概述

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

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

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


环境

模块 - MySQLDB

模块 - sqlparse

Python版本 = 2.7.3

 


1、脚本内容

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 


强烈推荐一款MySQL语句优化辅助工具,值得收藏

 


2、调用方法

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

参数说明:

-p 指定配置文件名称

-s 指定SQL语句


3、配置文件

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 

 


4、输出说明

1) 标题部分

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 

 

2) 原始SQL

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 

 

3) 系统级参数

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 

 

4) 优化器开关

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 

 

5) 执行计划

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 

 

6) 优化器改写后的SQL

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 

 

7) 统计信息

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 

 

8) 运行状态信息

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 

 

9) PROFILE详细信息

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 

 

10) PROFILE汇总信息

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

强烈推荐一款MySQL语句优化辅助工具,值得收藏

 



Tags:MySQL 优化   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是...【详细内容】
2020-04-17  Tags: MySQL 优化  点击:(73)  评论:(0)  加入收藏
当MySQL单表记录数过大时,增加、删除、修改和查询的性能将急剧下降,您可以参考以下步骤进行优化。单表优化 除非你预计未来你的单表数据会不断的持续上涨,否则不要一开始就考虑...【详细内容】
2020-04-14  Tags: MySQL 优化  点击:(70)  评论:(0)  加入收藏
谁在消耗cpu?用户+系统+IO等待+软硬中断+空闲 祸首是谁?用户用户空间CPU消耗,各种逻辑运算正在进行大量tps函数/排序/类型转化/逻辑IO访问…用户空间消耗大量cpu,产生...【详细内容】
2020-03-09  Tags: MySQL 优化  点击:(144)  评论:(0)  加入收藏
千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区,在此我想做一些补充和梳理,想和大家做一些这方面的经验总结,也欢迎大家提出建议...【详细内容】
2020-02-11  Tags: MySQL 优化  点击:(60)  评论:(0)  加入收藏
概述优化SQL,是DBA常见的工作之一。如何高效、快速地优化一条语句,是每个DBA经常要面对的一个问题。对于一名DBA来说,掌握一门语言配合自己的工作是非常必要的。相对于shell的...【详细内容】
2019-10-09  Tags: MySQL 优化  点击:(607)  评论:(0)  加入收藏
mysql5.6之前处理客户端连接的方式会触发mysql 新建一个线程来处理新的连接,新建的线程会处理该连接所发送的所有 SQL 请求,即 one-thread-per-connection 的方式,其创建连接的堆栈为:...【详细内容】
2019-09-06  Tags: MySQL 优化  点击:(160)  评论:(0)  加入收藏
1 前言在进行 MySQL 的优化之前必须要了解的就是 MySQL 的查询过程,很多的查询优化工作实际上就是遵循一些原则让 MySQL 的优化器能够按照预想的合理方式运行而已。 2 优化...【详细内容】
2019-09-05  Tags: MySQL 优化  点击:(151)  评论:(0)  加入收藏
MySQL 对于很多 Linux 从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行 MySQL 的优化之前必须要了解的就是 MySQL 的查询过程,很多的查询优化工作实际上就是遵循一些...【详细内容】
2019-09-03  Tags: MySQL 优化  点击:(157)  评论:(0)  加入收藏
数据千万级别之多,占用的存储空间也比较大,可想而知它不会存储在一块连续的物理空间上,而是链式存储在多个碎片的物理空间上。可能对于长字符串的比较,就用更多的时间查找与比...【详细内容】
2019-08-27  Tags: MySQL 优化  点击:(268)  评论:(0)  加入收藏
个人的观点,这种大表的优化,不一定上来就要分库分表,因为表一旦被拆分,开发、运维的复杂度会直线上升,而大多数公司是欠缺这种能力的。所以MySQL中几百万甚至小几千万的表,先考虑...【详细内容】
2019-08-26  Tags: MySQL 优化  点击:(907)  评论:(0)  加入收藏
▌简易百科推荐
作者:雷文霆 爱可生华东交付服务部 DBA 成员,主要负责Mysql故障处理及相关技术支持。爱好看书,电影。座右铭,每一个不曾起舞的日子,都是对生命的辜负。 本文来源:原创投稿 *爱可生...【详细内容】
2021-12-24  爱可生    Tags:MySQL   点击:(7)  评论:(0)  加入收藏
生成间隙(gap)锁、临键(next-key)锁的前提条件 是在 RR 隔离级别下。有关Mysql记录锁、间隙(gap)锁、临键锁(next-key)锁的一些理论知识之前有写过,详细内容可以看这篇文章...【详细内容】
2021-12-14  python数据分析    Tags:MySQL记录锁   点击:(18)  评论:(0)  加入收藏
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二...【详细内容】
2021-12-14  linux上的码农    Tags:mysql   点击:(13)  评论:(0)  加入收藏
为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查...【详细内容】
2021-12-09  元宇宙iwemeta    Tags:mysql   点击:(15)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  吴彬的分享    Tags:Mysql数据库   点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  秃头码哥    Tags:MySQL数据库   点击:(17)  评论:(0)  加入收藏
对于数据分析来说,MySQL使用最多的是查询,比如对数据进行排序、分组、去重、汇总及字符串匹配等,如果查询的数据涉及多个表,还需要要对表进行连接,本文就来说说MySQL中常用的查询...【详细内容】
2021-12-06  笨鸟学数据分析    Tags:MySQL   点击:(21)  评论:(0)  加入收藏
在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。...【详细内容】
2021-11-24  笨鸟学数据分析    Tags:SQL语句   点击:(23)  评论:(0)  加入收藏
概述以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域...【详细内容】
2021-11-05  Java云海    Tags:分布式锁   点击:(32)  评论:(0)  加入收藏
MySQL的进阶查询 一、 按关键字排序 使用ORDERBY语句来实现排序排序可针对一个或多个字段ASC:升序,默认排序方式 【升序是从小到大】DESC:降序 【降序是从大到小】ORDER BY的...【详细内容】
2021-11-05  Java热点    Tags:SQL语句   点击:(28)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条