加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

自制小工具大大加速MySQL SQL语句优化(附源码)

发布时间:2019-06-24 17:03:19 所属栏目:MySql教程 来源:宜信技术学院
导读:副标题#e# 引言 优化SQL,是DBA常见的工作之一。如何高效、快速地优化一条语句,是每个DBA经常要面对的一个问题。在日常的优化工作中,我发现有很多操作是在优化过程中必不可少的步骤。然而这些步骤重复性的执行,又会耗费DBA很多精力。于是萌发了自己编写

1) [database]

  1. server_ip   = 127.0.0.1  
  2. db_user     = testuser  
  3. db_pwd      = testpwd  
  4. db_name     = test 

2) [option]

  1. sys_parm    = ON     //是否显示系统参数  
  2. sql_plan    = ON //是否显示执行计划  
  3. obj_stat    = ON //是否显示相关对象(表、索引)统计信息  
  4. ses_status  = ON //是否显示运行前后状态信息(激活后会真实执行SQL)  
  5. sql_profile = ON   //是否显示PROFILE跟踪信息(激活后会真实执行SQL) 

4、输出说明

1) 标题部分

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

自制小工具大大加速MySQL SQL语句优化(附源码)

2) 原始SQL

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

自制小工具大大加速MySQL SQL语句优化(附源码)

3) 系统级参数

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

自制小工具大大加速MySQL SQL语句优化(附源码)

4) 优化器开关

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

自制小工具大大加速MySQL SQL语句优化(附源码)

5) 执行计划

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

自制小工具大大加速MySQL SQL语句优化(附源码)

6) 优化器改写后的SQL

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

自制小工具大大加速MySQL SQL语句优化(附源码)

7) 统计信息

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

自制小工具大大加速MySQL SQL语句优化(附源码)

8) 运行状态信息

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

自制小工具大大加速MySQL SQL语句优化(附源码)

9) PROFILE详细信息

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

自制小工具大大加速MySQL SQL语句优化(附源码)

10) PROFILE汇总信息

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

自制小工具大大加速MySQL SQL语句优化(附源码)

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读