1.Show Profile默认是关闭的,试用前需要开启:
查看是否开启:
Show variables like 'profiling';
设置开启:
set profiling = on;
2.使用:
show profile cpu,block io for query 150;
3.show profile 的参数:
type是可选的,取值范围可以如下:
- ALL 显示所有性能信息
- BLOCK IO 显示块IO操作的次数
- CONTEXT SWITCHES 显示上下文切换次数,不管是主动还是被动
- CPU 显示用户CPU时间、系统CPU时间
- IPC 显示发送和接收的消息数量
- MEMORY [暂未实现]
- PAGE FAULTS 显示页错误数量
- SOURCE 显示源码中的函数名称与位置
- SWAPS 显示SWAP的次数
4.应注意的结论:
converting HEAP to MyISAM 查询结果太大,内存不够用往磁盘上搬;
Creating tmp table 创建临时表:拷贝数据到临时表,用完再删除;
Copying to tmp table on disk 把内存临时表复制到磁盘,危险。
locked
5.全局查询日志(永远不要在生产环境开启这个功能):
配置方式:
在mysql的my.cnf中,设置如下:
#开启
general_log=1;
#记录日志文件的路径
general_log_file=/path/logfile;
#输出格式
log_output=FILE;
命令的方式:
set general_log=1;
set global log_output='TABLE';
以后编写的sql语句,会记录到mysql库里的general_log表,可以用下面的命令查看:
select * from mysql.general_log;