mysql show profiles使用分析sql性能

Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后。

查看一下我的数据库版本

mysql> Select  version();

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

| version()           |

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

| 5.0.82-community-nt |

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

  www.2cto.com

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)

执行下面的查询

  www.2cto.com

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;

  www.2cto.com

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

| 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 |

  www.2cto.com

| 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 |

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

  www.2cto.com

---------+

| 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 |  www.2cto.com

| 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 |

  www.2cto.com

| 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

mysql show profiles使用分析sql性能的更多相关文章

  1. mysql show profiles 使用分析sql 性能

    Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后. 查看一下我的数据库版本 MySQL> Select  version(); +-------- ...

  2. 使用show profiles分析SQL性能

    如何查看执行SQL的耗时 使用show profiles分析sql性能. Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后. 查看数据库版本 mysql ...

  3. 【MS SQL】通过执行计划来分析SQL性能

    原文:[MS SQL]通过执行计划来分析SQL性能 如何知道一句SQL语句的执行效率呢,只知道下面3种: 1.通过SQL语句执行时磁盘的活动量(IO)信息来分析:SET STATISTICS IO O ...

  4. mysql 分析3使用分析sql 性能 show profiles ;

    show variables like '%profiling%';    查看状态  查看时间去哪了``` set  profiling=1;// 打开 show profiles;  查看执行过的 ...

  5. MySQL高级篇 | 分析sql性能

    在应用的的开发过程中,由于初期数据量小,开发人员写 SQL 语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多 SQL 语句开始逐渐显露出性能问题,对生产的影响也越来越 ...

  6. 使用Oracle执行计划分析SQL性能

    执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述.即就是对一个查询任务,做出一份怎样去完成任务的详细方案. 如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的 ...

  7. MySQL字符集不一致导致查询SQL性能问题

    今天做了一个MySQL数据库中的SQL优化. 结论是关联字段字符集不同,导致索引不可用. 查询的SQL如下: select `Alias`.`Grade`, `Alias`.`id`, `Alias` ...

  8. MySQL进阶篇(01):基于多个维度,分析服务器性能

    本文源码:GitHub·点这里 || GitEE·点这里 一.服务器性能简介 1.性能定义 服务器性能优化是一项非常艰巨的任务,当然也是很难处理的问题,在写这篇文章的时候,特意请教下运维大佬,硬件工程 ...

  9. Oracle DB SQL 性能分析器

    • 确定使用SQL 性能分析器的优点 • 描述SQL 性能分析器工作流阶段 • 使用SQL 性能分析器确定数据库更改所带来的性能改进 SQL 性能分析器:概览 • 11g 的新增功能 • 目标用户:D ...

随机推荐

  1. Linux虚拟地址空间布局以及进程栈和线程栈总结【转】

    转自:http://www.cnblogs.com/xzzzh/p/6596982.html 原文链接:http://blog.csdn.net/freeelinux/article/details/ ...

  2. TCP的可靠性

    原因: 1.确认和重传机制 2.序列号 3.流量控制(窗口) 4.拥塞控制(慢启动,拥塞避免,快速重传,快速恢复) http://blog.csdn.net/baidu_35692628/articl ...

  3. Java和Js的高精度计算

    转载自:http://blog.csdn.net/zhutulang/article/details/6844834#comments Java: import java.math.BigDecima ...

  4. solr in action

    Miscellaneous settings: Lucene version solr使用luceneMatchVersion来决定当前索引正在使用的lucene版本及是否禁用新版本的特性.

  5. Spring boot集成redis初体验

    pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht ...

  6. rest_framework 权限流程

    权限流程 权限流程与认证流程非常相似,只是后续操作稍有不同 当用户访问是 首先执行dispatch函数,当执行当第二部时: #2.处理版本信息 处理认证信息 处理权限信息 对用户的访问频率进行限制 s ...

  7. Java多态机制和继承中重写重载

    关于Java中多态机制 http://www.cnblogs.com/chenssy/p/3372798.html 这篇博文讲的很透彻 大体意思是 多态定义: 多态就是指程序中定义的引用变量所指向的具 ...

  8. 腾讯云 python3+Django

    !!!注意:如果已经包含了python3.5,跳过安装3.6版本. !!!本人安装完3.6后,pip3安装的包始终没法安装到3.6目录下,只能安装到3.5目录下 1,安装python3.6(用编译的方 ...

  9. Android Studio查看类中所有方法和属性

    ctrl+f3效果: alt+7效果: 注意区别:虽然所有方法都有,但是顺序自己一看效果便知.一个是根据类中的顺序,另一个是根据a-z的开头字母顺序. 百度查了一下快捷键是ctrl+f12.但是自己试 ...

  10. [BZOJ2151] 种树 贪心

    2151: 种树 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1151  Solved: 613[Submit][Status][Discuss] ...