MySQL之Show Profiles

定义

  • Show Profiles是MySQL提供,可以分析SQL语句执行的资源消耗情况,可用于SQL调优。
  • 通过配置profiling参数启用SQL剖析,该参数可以在全局和session级别来设置。
  • 全局级别作用于整个MySQL实例,而session级别只影响当前回话。
  • 该参数开启后,后续执行的SQL语句都将记录其资源开销,诸如IO,上下文切换,CPU,Memory等
  • Show profiles是5.0.37之后添加的,要想使用此功能,要确保MySQL版本 > 5.0.37。

如何使用

select version(); -- 查看数据库版本
show variables like "%profiling%"; -- 查看是否开启
set profiling=1; -- 开启profile
show profiles; -- 查看最近的SQL语句

帮助文档

help profile;  --查看帮助信息

SHOW PROFILE [type [, type] ... ]
    [FOR QUERY n]
    [LIMIT row_count [OFFSET offset]]

type: {
    ALL                 --显示所有的开销信息  
  | BLOCK IO           --显示块IO相关开销  
  | CONTEXT SWITCHES   --上下文切换相关开销  
  | CPU                --显示CPU相关开销信息  
  | IPC                --显示发送和接收相关开销信息  
  | MEMORY             --显示内存相关开销信息  
  | PAGE FAULTS        --显示页面错误相关开销信息  
  | SOURCE             --显示和Source_function,Source_file,Source_line相关的开销信息  
  | SWAPS              --显示交换次数相关开销的信息   
}
*Note*:

The SHOW PROFILE and SHOW PROFILES statements are deprecated and will
be removed in a future MySQL release. Use the Performance Schema
instead; see
https://dev.mysql.com/doc/refman/8.0/en/performance-schema-query-profil
ing.html

--上面描述SHOW PROFILE命令将会被移除,推荐用Performance Schema instead代替  
--在Oracle数据库中,是通过autotrace来剖析单条SQL并获取真实的执行计划以及其开销信息

URL: https://dev.mysql.com/doc/refman/8.0/en/show-profile.html

官网

Performance Schema说明文档:https://dev.mysql.com/doc/refman/8.0/en/performance-schema-query-profiling.html
SHOW PROFILE说明文档:https://dev.mysql.com/doc/refman/8.0/en/show-profile.html

show profile for query 167;  -- 获取指定查询(Query_ID = 167)的开销
-- 查看特定部分的开销,如下为CPU部分的开销  
show profile cpu for query 167 ;
-- 如下为MEMORY部分的开销  
show profile memory for query 167 ; 
-- 同时查看io和cpu
show profile block io,cpu for query 167;  
-- 下面的SQL语句用于查询query_id为2的SQL开销,且按最大耗用时间倒序排列  
set @query_id=167;

在这里插入图片描述

如果Status出现以下情况,需要进行SQL优化

在这里插入图片描述

补充(开启全局查询日志)

  • 千万不要在生产环境上开启此功能
  • 千万不要在生产环境上开启此功能
  • 千万不要在生产环境上开启此功能

请在测试环境上开启

配置启用

在这里插入图片描述

SQL语句启用

在这里插入图片描述

posted @ 2021-02-20 18:43  layman~  阅读(76)  评论(0编辑  收藏  举报