官网
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
1.什么是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。
2.怎么用?
select version(); -- 查看数据库版本
show variables like "%profiling%"; -- 查看是否开启
set profiling=1; -- 开启profile
show profiles; -- 查看最近的SQL语句
执行完sql
命令:show profile cpu,block io for query 3;
上面命令
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;
8号线程
复制表,耗费资源。
3.全局查询日志。
- 不能再生产环境上开启此功能