mysql优化之profile查询分析
通过慢日志查询可以知道哪些SQL语句执行效率低下,通过explain我们可以得知SQL语句的具体执行情况,索引使用等,还可以结合show命令查看执行状态。
如果觉得explain的信息不够详细,可以同通过 profiling命令得到更准确的SQL执行消耗系统资源的信息。
这里还需要注意一点就是,需要安装profile模块才能实现。
1、不过版本要在5.0.37之后。(SHOW PROFILES and SHOW PROFILE were added in MySQL 5.0.37.)
SELECT @@profiling;
来查看是否已经启用profile,
如果profilng值为0,可以通过
SET profiling = 1;来启用。 变量profiling是用户变量,每次都得重新启用
启用profiling之后,我们执行一条查询语句,比如:
select count(*) from test;
然后show profiles查看如下:( show profiles来查看开启了profiling后的所有sql语句的id和消耗的时间)
+----------------+------------+----------------------------------+
| Query_ID | Duration | Query |
+----------------+------------+----------------------------------+
| 1 | 0.00021500 | select @@profiling |
| 2 | 0.05522700 | select count(*) from test |
+----------------+------------+----------------------------------+
2 rows in set (0.00 sec)
其中ID为5的语句是刚执行的查询语句
2、 show profile all for query sql语句的query_id值 :可以通过该命令知道某个语句的cpu、io等的情况
已有 0 人发表留言,猛击->> 这里<<-参与讨论
ITeye推荐