山东住房与城乡建设网站,衡水网站排名优化公司,建设网站的 成本,微信建设银行官方网站6 Show Profile分析#xff08;重点#xff09;
Show Profile是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量
官网文档
默认情况下#xff0c;参数处于关闭状态#xff0c;并保存最近15次的运行结果
分析步骤#xff1a; 1、是否…6 Show Profile分析重点
Show Profile是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量
官网文档
默认情况下参数处于关闭状态并保存最近15次的运行结果
分析步骤 1、是否支持看看当前的mysql版本是否支持show variables like profiling; 默认是关闭使用前需要开启 2、开启功能默认是关闭使用前需要开启set profilingon; 3、运行SQL随便运行用来测试 mysql select * from emp group by id%10 limit 150000;mysql select * from emp group by id%20 order by 5;4、查看结果show profiles; mysql show profiles;
---------------------------------------------------------------------
| Query_ID | Duration | Query |
---------------------------------------------------------------------
| 1 | 0.00204000 | show variables like profiling |
| 2 | 0.55134250 | select * from emp group by id%10 limit 150000 |
| 3 | 0.56902000 | select * from emp group by id%20 order by 5 |
---------------------------------------------------------------------
3 rows in set, 1 warning (0.00 sec)5、诊断SQLshow profile cpu,block io for query ID号;ID号为第4步Query_ID列中数字 mysql show profile cpu,block io for query 3;
-----------------------------------------------------------------------------------
| Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
-----------------------------------------------------------------------------------
| starting | 0.000049 | 0.000000 | 0.000000 | NULL | NULL |
| checking permissions | 0.000005 | 0.000000 | 0.000000 | NULL | NULL |
| Opening tables | 0.000012 | 0.000000 | 0.000000 | NULL | NULL |
| init | 0.000021 | 0.000000 | 0.000000 | NULL | NULL |
| System lock | 0.000009 | 0.000000 | 0.000000 | NULL | NULL |
| optimizing | 0.000003 | 0.000000 | 0.000000 | NULL | NULL |
| statistics | 0.000017 | 0.000000 | 0.000000 | NULL | NULL |
| preparing | 0.000008 | 0.000000 | 0.000000 | NULL | NULL |
| Creating tmp table | 0.000045 | 0.000000 | 0.000000 | NULL | NULL |
| Sorting result | 0.000004 | 0.000000 | 0.000000 | NULL | NULL |
| executing | 0.000002 | 0.000000 | 0.000000 | NULL | NULL |
| Sending data | 0.568704 | 0.546875 | 0.046875 | NULL | NULL |
| Creating sort index | 0.000048 | 0.000000 | 0.000000 | NULL | NULL |
| end | 0.000003 | 0.000000 | 0.000000 | NULL | NULL |
| query end | 0.000005 | 0.000000 | 0.000000 | NULL | NULL |
| removing tmp table | 0.000006 | 0.000000 | 0.000000 | NULL | NULL |
| query end | 0.000003 | 0.000000 | 0.000000 | NULL | NULL |
| closing tables | 0.000004 | 0.000000 | 0.000000 | NULL | NULL |
| freeing items | 0.000061 | 0.000000 | 0.000000 | NULL | NULL |
| cleaning up | 0.000015 | 0.000000 | 0.000000 | NULL | NULL |
-----------------------------------------------------------------------------------
20 rows in set, 1 warning (0.00 sec)参数备注写在代码中show profile cpu,block io for query 3;如此代码中的cpu,block ALL显示所有的开销信息。BLOCK IO显示块lO相关开销。CONTEXT SWITCHES 上下文切换相关开销。CPU显示CPU相关开销信息。IPC显示发送和接收相关开销信息。MEMORY显示内存相关开销信息。PAGE FAULTS显示页面错误相关开销信息。SOURCE显示和Source_functionSource_fileSource_line相关的开销信息。SWAPS显示交换次数相关开销的信息。 6、日常开发需要注意的结论Status列中的出现此四个问题严重 converting HEAP to MyISAM查询结果太大内存都不够用了往磁盘上搬了。Creating tmp table创建临时表拷贝数据到临时表用完再删除Copying to tmp table on disk把内存中临时表复制到磁盘危险!locked锁了
7 MySQL配置优化
修改 my.ini文件 端口号port3306主机也要修改mysql_connect() 最大并发数max_connections151可以改为2000 最重要的参数就是内存我们主要用的innodb引擎所以下面两个参数调的很大 innodb_ additional_ mem_ pool size 64M innodb_ buffer_ pool_ size 1G 对于myisam,需要调整key_ buffer _size增加10倍即可
如果你的操作系统是64的内存足够请选择使用64的mysql安装程序