意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

MySQL调优之show profile 应用

来源:恒创科技 编辑:恒创科技编辑部
2023-12-22 11:18:59


show profile是MySQL提供可以用来分析当前会话中语句执行的资源消耗情况,可以帮助进行SQL问题的诊断。

查看配置


MySQL调优之show profile 应用

show variables like '%profiling%'

# 本文这里如下
have_profiling YES //是否支持profile
profiling OFF // OFF表示关闭,默认关闭
profiling_history_size 15 // 记录最近15条语句

可以使用命令​​set global profiling=ON​​进行临时开启,如果需要永久生效则在MySQL的配置文件中进行配置。

show profiles查看最近SQL

用来查看最近15条SQL,如下所示主要有Query_ID、Duration以及Query三项。其中Query_ID将在下面详细分析时使用。Duration则表示该条语句执行的时间。

MySQL调优之show profile 应用_sql

查看SQL详细情况

show profile [OPTIONS]  for query Query_ID;

# 如下
show profile cpu,block io for query 2;

选项注释

选项

说明

ALL

显示所有的开销信息

BLOCK IO

显示块IO相关开销

CPU

显示CPU相关开销信息

CONTEXT SWITCHES

上下文切换相关开销

IPC

显示发送和接收相关开销信息

MEMORY

显示内存相关开销信息

PAGE FAULTS

显示页面错误相关开销信息

SOURCE

显示和source_function,source_file,source_line相关的开销信息

SWAPS

显示交换次数相关开销的信息

几个雷区

即当你从上面详细跟踪中看到下面几个,要特别注意。

convertiong heap to myisam :查询结果太大,内存不够用。

creating tmp table : 创建临时表(拷贝数据到临时表,用完临时表后删除临时表)。

copying to tmp table on disk : 把内存中临时表复制到磁盘–这是一个危险的动作。

locked : 无需多言,锁的时间比较长


上一篇: MySQL调优之慢查询日志应用 下一篇: mysql数据库案例