默认情况下,参数处于关闭状态,保存最近15次的运行结果
分析步骤
1、查看当前版本是否支持
show variables like 'profiling'
2、开启功能
set profiling =on
3、运行SQL
4、执行
show profiles
可以看到每条SQL的执行耗时情况
5、诊断SQL
show profile cpu,block io for query [ 查询ID号]
show profile cpu,block io for query 10
BLOCK IO 块IO相关开销
CONTEXT SWITCHES 上下文切换次数开销,被动和主动
CPU CPU相关开销信息
IPC 发送和接受相关开销信息
MEMORY 内存相关开销信息
PAGE FAULTS 页面错误相关开销信息
SOURCE Source_function,Source_file,Source_line相关的开销信息
SWAPS 交换次数相关开销的信息
需要注意
concerting HELP to MyISAM 查询结果太大,内存都不够用了往磁盘上搬了
Creating tmp table 创建临时表 拷贝数据到临时表,用完再删除
Copying to tmp table on disk 把内存中临时表复制到磁盘
-- 打开sql 执行记录功能
set global log_output='TABLE'-- 输出到表
set global log=ON-- 打开所有命令
执行记录功能general_log, 所有语句: 成功和未成功的.
set global log_slow_queries=ON-- 打开慢查询 sql 记录
slow_log, 执行成功的: 慢查询语句和未使用索引的语句
set global long_query_time=0.1-- 慢查询时间限制(秒)
set global log_queries_not_using_indexes=ON-- 记录未使用索引的sql 语句
-- 查询sql 执行记录
select * from mysql.slow_log order by 1-- 执行成功的:慢查询语句,和未
使用索引的语句
select * from mysql.general_log order by 1-- 所有语句: 成功和未成功的.-- 关闭sql 执行记
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)