mysql性能调试工具profile

我一直在找mysql中有没有类似Oracle 10046类似的工具,可以看到SQL执行的时间消耗在哪里。终于在网上找到一个profile,使用一些,觉得不错。

mysql> select version();

+-----------+

| version() |

+-----------+

| 5.6.16    |

+-----------+

1 row in set (0.00 sec)

mysql> SELECT @@profiling;

+-------------+

| @@profiling |

+-------------+

|           0 |

+-------------+

1 row in set, 1 warning (0.00 sec)

mysql> SET profiling = 1;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> select count(1) from test1 t1,test2 t2;

+----------+

| count(1) |

+----------+

|  7096832 |

+----------+

1 row in set (0.38 sec)

mysql> show profile cpu,block io for query 1;  --for query 1 是看第1条执行的SQL语句

+--------------------------------+----------+----------+------------+--------------+---------------+

| Status                         | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |

+--------------------------------+----------+----------+------------+--------------+---------------+

| starting                       | 0.000006 | 0.000000 |   0.000000 |         NULL |          NULL |

| Waiting for query cache lock   | 0.000002 | 0.000000 |   0.000000 |         NULL |          NULL |

| init                           | 0.000002 | 0.000000 |   0.000000 |         NULL |          NULL |

| checking query cache for query | 0.000023 | 0.000000 |   0.000000 |         NULL |          NULL |

| checking permissions           | 0.000003 | 0.000000 |   0.000000 |         NULL |          NULL |

| checking permissions           | 0.000002 | 0.000000 |   0.000000 |         NULL |          NULL |

| Opening tables                 | 0.000026 | 0.000000 |   0.000000 |         NULL |          NULL |

| init                           | 0.000008 | 0.000000 |   0.000000 |         NULL |          NULL |

| System lock                    | 0.000007 | 0.000000 |   0.000000 |         NULL |          NULL |

| Waiting for query cache lock   | 0.000002 | 0.000000 |   0.000000 |         NULL |          NULL |

| System lock                    | 0.000022 | 0.000000 |   0.000000 |         NULL |          NULL |

| optimizing                     | 0.000004 | 0.000000 |   0.000000 |         NULL |          NULL |

| statistics                     | 0.000012 | 0.000000 |   0.000000 |         NULL |          NULL |

| preparing                      | 0.000022 | 0.000000 |   0.000000 |         NULL |          NULL |

| executing                      | 0.000002 | 0.000000 |   0.000000 |         NULL |          NULL |

| Sending data                   | 0.388263 | 0.375000 |   0.000000 |         NULL |          NULL |

| end                            | 0.000017 | 0.000000 |   0.000000 |         NULL |          NULL |

| query end                      | 0.000008 | 0.000000 |   0.000000 |         NULL |          NULL |

| closing tables                 | 0.000014 | 0.000000 |   0.000000 |         NULL |          NULL |

| freeing items                  | 0.000006 | 0.000000 |   0.000000 |         NULL |          NULL |

| Waiting for query cache lock   | 0.000002 | 0.000000 |   0.000000 |         NULL |          NULL |

| freeing items                  | 0.000045 | 0.000000 |   0.000000 |         NULL |          NULL |

| Waiting for query cache lock   | 0.000002 | 0.000000 |   0.000000 |         NULL |          NULL |

| freeing items                  | 0.000002 | 0.000000 |   0.000000 |         NULL |          NULL |

| storing result in query cache  | 0.000004 | 0.000000 |   0.000000 |         NULL |          NULL |

| cleaning up                    | 0.000015 | 0.000000 |   0.000000 |         NULL |          NULL |

+--------------------------------+----------+----------+------------+--------------+---------------+

26 rows in set, 1 warning (0.00 sec)

mysql> select count(1) from test1 t1,test2 t2, test2 t3;

+------------+

| count(1)   |

+------------+

| 1185170944 |

+------------+

1 row in set (1 min 26.67 sec)

mysql> show profile cpu,block io for query 2;  --for query 2 是看第2条执行的SQL语句

+--------------------------------+-----------+-----------+------------+--------------+---------------+

| Status                         | Duration  | CPU_user  | CPU_system | Block_ops_in | Block_ops_out |

+--------------------------------+-----------+-----------+------------+--------------+---------------+

| starting                       |  0.000005 |  0.000000 |   0.000000 |         NULL |          NULL |

| Waiting for query cache lock   |  0.000002 |  0.000000 |   0.000000 |         NULL |          NULL |

| init                           |  0.000002 |  0.000000 |   0.000000 |         NULL |          NULL |

| checking query cache for query |  0.000029 |  0.000000 |   0.000000 |         NULL |          NULL |

| checking permissions           |  0.000002 |  0.000000 |   0.000000 |         NULL |          NULL |

| checking permissions           |  0.000002 |  0.000000 |   0.000000 |         NULL |          NULL |

| checking permissions           |  0.000002 |  0.000000 |   0.000000 |         NULL |          NULL |

| Opening tables                 |  0.000071 |  0.000000 |   0.000000 |         NULL |          NULL |

| init                           |  0.000008 |  0.000000 |   0.000000 |         NULL |          NULL |

| System lock                    |  0.000005 |  0.000000 |   0.000000 |         NULL |          NULL |

| Waiting for query cache lock   |  0.000002 |  0.000000 |   0.000000 |         NULL |          NULL |

| System lock                    |  0.000021 |  0.000000 |   0.000000 |         NULL |          NULL |

| optimizing                     |  0.000004 |  0.000000 |   0.000000 |         NULL |          NULL |

| statistics                     |  0.000011 |  0.000000 |   0.000000 |         NULL |          NULL |

| preparing                      |  0.000019 |  0.000000 |   0.000000 |         NULL |          NULL |

| executing                      |  0.000002 |  0.000000 |   0.000000 |         NULL |          NULL |

| Sending data                   | 86.679145 | 86.640625 |   0.000000 |         NULL |          NULL |

| end                            |  0.000024 |  0.000000 |   0.000000 |         NULL |          NULL |

| query end                      |  0.000008 |  0.000000 |   0.000000 |         NULL |          NULL |

| closing tables                 |  0.000014 |  0.000000 |   0.000000 |         NULL |          NULL |

| freeing items                  |  0.000006 |  0.000000 |   0.000000 |         NULL |          NULL |

| Waiting for query cache lock   |  0.000002 |  0.000000 |   0.000000 |         NULL |          NULL |

| freeing items                  |  0.000045 |  0.000000 |   0.000000 |         NULL |          NULL |

| Waiting for query cache lock   |  0.000002 |  0.000000 |   0.000000 |         NULL |          NULL |

| freeing items                  |  0.000002 |  0.000000 |   0.000000 |         NULL |          NULL |

| storing result in query cache  |  0.000003 |  0.000000 |   0.000000 |         NULL |          NULL |

| logging slow query             |  0.000003 |  0.000000 |   0.000000 |         NULL |          NULL |

| cleaning up                    |  0.000014 |  0.000000 |   0.000000 |         NULL |          NULL |

+--------------------------------+-----------+-----------+------------+--------------+---------------+

28 rows in set, 1 warning (0.00 sec)

SHOW PROFILES Syntax

SHOW PROFILE [type [, type] ... ]

[FOR QUERY n]

[LIMIT row_count [OFFSET offset]]

type:

ALL

| BLOCK IO

| CONTEXT SWITCHES

| CPU

| IPC

| MEMORY

| PAGE FAULTS

| SOURCE

| SWAPS

type类型的含义:

ALL displays all information

BLOCK IO displays counts for block input and output operations

CONTEXT SWITCHES displays counts for voluntary and involuntary context switches

CPU displays user and system CPU usage times

IPC displays counts for messages sent and received

MEMORY is not currently implemented

PAGE FAULTS displays counts for major and minor page faults

SOURCE displays the names of functions from the source code, together with the name and line number of the file in which the function occurs

SWAPS displays swap counts

mysql性能调试工具profile

时间: 08-13

mysql性能调试工具profile的相关文章

mysql性能分析show profile/show profiles

MySQL性能分析show profiles show profile 和 show profiles 语句可以展示当前会话(退出session后,profiling重置为0) 中执行语句的资源使用情况. Profiling 功能由MySQL会话变量 : profiling控制,默认是OFF.关闭状态.select @@profiling; 或者show variables like '%profi%': mysql> select @@profiling; +-------------+ |

MySQL 性能优化---索引及优化

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 一.MySQL性能优化之-影响性能的因素 1.商业需求的影响 Myisam存储引擎内置一个计数器,count(*)时直接从计数器读取:而通过innodb存储引擎查找某个数据时,是必须扫描全表的,所以当执行对表的统计(即使用count(*)函数)时,myisam要比innodb要快的很多.所以一般在innodb上执行count(*)时一般要

mysql性能优化总结1

MySQL性能优化总结 一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图: 三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件.首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD和.MYI文件,分别存放了表的数据(.MYD)和索引数据(.MYI).每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存

mysql性能优化注意事项以及索引

 mysql性能优化注意事项以及索引 一:数据库的优化方面 1商业需求的影响 比如说论坛里的帖子统计,并且实时更新 从功能上来说通过命令   select  count(*) from 表名 可以得到结果,如果论坛每秒产生产生成千上万条帖子,我们没有采用myisam存储而用的是innodb存储:就算再好的设备也不可能很快的查询出来. 注:在where和count(*)使用中myisam比innodb要快的多:因为myisam内置了一个计数器,count(*)可以直接从计数器当中读取,而innod

Mysql性能的优化配置

一.MySQL 性能优化之-影响性能的因素 1. 商业需求的影响 不合理需求造成资源投入产出比过低,这里我们就用一个看上去很简单的功能来分析一下. 需求:一个论坛帖子总量的统计,附加要求:实时更新 从功能上来看非常容易实现,执行一条 SELECT COUNT(*) from 表名 的 Query 就可以得到结果.但是,如果我们采用不是 MyISAM 存储引擎,而是使用的 Innodb 的存储引擎,那么大家可以试想一下,如果存放帖子的表中已经有上千万的帖子的时候,执行这条 Query 语句需要多少

MySQL的show profile简介以及该功能在MySQL 5.7中performance_schema中的替代

本文出处:http://www.cnblogs.com/wy123/p/6979499.html show profile 命令用于跟踪执行过的sql语句的资源消耗信息,可以帮助查看sql语句的执行情况,可以在做性能分析或者问题诊断的时候作为参考. 在MySQL5.7中, show profile 命令已经开始不推荐使用,MySQL使用performance_schema 中系统表的信息来替代show profile命令 本文简单介绍一下MySQL的profile使用,以及在MySQL5.7之后

MySQL性能优化总结

一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图 三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件.首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD和.MYI文件,分别存放了表的数据(.MYD)和索引数据(.MYI).每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存储,也就是说不管这个表有多

mysql性能优化-慢查询分析,优化索引最佳实践

数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显,我们究竟应该如何对MySQL数据库进行优化? 下面我就从MySQL对硬件的选择.MySQL的安装.my.cnf的优化.MySQL如何进行架构设计及数据切分,查询与索引优化分析等方面来说明这个问题. (一)服务器物理硬件的优化 在挑选硬件服务器时,我们应该从下面几个方面着重对MySQL服务器的硬件配置进行优化,也就是说将项目中的资金着重投入到如下几处: 1.磁盘寻道能力(磁盘I/O),我们现在用的都是SAS15000转的硬盘,

mysql性能优化-索引与优化

http://hongge.blog.51cto.com/ 一.MySQL性能优化之-影响性能的因素 1.商业需求的影响 不合理需求造成资源投入产出比过低,这里我们就用一个看上去很简单的功能来分析一下. 需求:一个论坛帖子总量的统计,附加要求:实时更新 从功能上来看非常容易实现,执行一条SELECT COUNT(*) from 表名 的Query 就可以得到结果.但是,如果我们采用不是MyISAM 存储引擎,而是使用的Innodb 的存储引擎,那么大家可以试想一下,如果存放帖子的表中已经有上千万