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等的情况

猜你喜欢

转载自wsluozefeng.iteye.com/blog/2186959