Heim > Datenbank > MySQL-Tutorial > mysql show profiles使用分析sql性能_MySQL

mysql show profiles使用分析sql性能_MySQL

WBOY
Freigeben: 2016-06-01 13:41:26
Original
898 Leute haben es durchsucht

bitsCN.com
mysql show profiles使用分析sql性能 Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后。 查看一下我的数据库版本mysql> Select  version();+---------------------+| version()           |+---------------------+| 5.0.82-community-nt |+---------------------+   1 row in set (0.00 sec) 版本是支持show profiles功能的。接下来进入mysql性能跟踪诊断的世界 查看是否打开了profiles功能,默认是关闭的 mysql> use test; Database changed mysql> show profiles; Empty set (0.00 sec) 显示为空,说明profiles功能是关闭的。下面开启 mysql> set profiling=1; Query OK, 0 rows affected (0.00 sec) 执行下面的查询   mysql> explain select distinct player_idfrom task limit 20; mysql> select distinct player_id from task ; 然后执行 show profiles mysql> show profiles; +----------+------------+------------------------------------------------------+ | Query_ID | Duration   | Query                                               | +----------+------------+------------------------------------------------------+ |       1 | 0.00035225 | explain select distinct player_id from task limit 20 | |       2 | 1.91772775 | select distinct player_id from task                  | +----------+------------+------------------------------------------------------+ 此时可以看到执行select distinct player_id from task 用了1.91772775秒的时间 根据query_id 查看某个查询的详细时间耗费 mysql> show profile for query 2;   +----------------------+----------+ | Status               | Duration | +----------------------+----------+ | starting             | 0.000052 | | Opening tables       | 0.000009 | | System lock          | 0.000003 | | Table lock           | 0.000007 | | init                 | 0.000013 | | optimizing           | 0.000003 | | statistics           | 0.000009 | | preparing            | 0.000008 | | Creating tmp table   | 0.000074 | | executing            | 0.000002 | | Copying to tmp table |1.916551 |   | Sending data         | 0.000667 | | end                  | 0.000004 | | removing tmp table   | 0.000065 | | end                  | 0.000002 | | end                  | 0.000002 | | query end            | 0.000003 | | freeing items        | 0.000245 | | closing tables       | 0.000006 | | logging slow query   | 0.000002 | | cleaning up          | 0.000003 | +----------------------+----------+ 可以看到红色字体部分耗费了大量时间,这是因为distinct查看会用到临时表 那么可不可以查看占用cpu、 io等信息呢  mysql> show profile block io,cpu for query2; +----------------------+----------+----------+------------+--------------+------ ---------+ | Status               | Duration | CPU_user |CPU_system | Block_ops_in | Block _ops_out | +----------------------+----------+----------+------------+--------------+------   ---------+ | starting             | 0.000052 |     NULL |       NULL |         NULL |    NULL | | Opening tables       | 0.000009 |     NULL |       NULL |         NULL |    NULL | | System lock          | 0.000003 |     NULL |       NULL |         NULL |    NULL | | Table lock           | 0.000007 |     NULL |       NULL |         NULL |    NULL | | init                 | 0.000013 |     NULL |       NULL |         NULL |    NULL | | optimizing           | 0.000003 |     NULL |       NULL |         NULL |    NULL | | statistics           | 0.000009 |     NULL |       NULL |         NULL |    NULL |     | preparing            | 0.000008 |     NULL |       NULL |        NULL |    NULL | | Creating tmp table   | 0.000074 |     NULL |       NULL |         NULL |    NULL | | executing            | 0.000002 |     NULL |       NULL |         NULL |    NULL | | Copying to tmp table | 1.916551 |     NULL |       NULL |        NULL |    NULL | | Sending data         | 0.000667 |     NULL |       NULL |         NULL |    NULL | | end                  | 0.000004 |     NULL |       NULL |         NULL |    NULL | | removing tmp table   | 0.000065 |     NULL |       NULL |         NULL |    NULL | | end                  | 0.000002 |     NULL |       NULL |         NULL |    NULL | | end                  | 0.000002 |     NULL |       NULL |         NULL |    NULL | | query end            | 0.000003 |     NULL |       NULL |         NULL |    NULL | | freeing items        | 0.000245 |     NULL |       NULL |         NULL |    NULL | | closing tables       | 0.000006 |     NULL |       NULL |         NULL |    NULL |   | logging slow query   | 0.000002 |     NULL |       NULL |         NULL |    NULL | | cleaning up          | 0.000003 |     NULL |       NULL |         NULL |    NULL | +----------------------+----------+----------+------------+--------------+------另外还可以看到memory,swaps,context switches,source 等信息 具体信息可以参考http://dev.mysql.com/doc/refman/5.0/en/show-profiles.html  作者 aeolus_pu bitsCN.com

Verwandte Etiketten:
sql
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage