From : http://blog.csdn.net/radkitty/article/details/4632289

要使用该功能,mysql的版本必须在5.0.37版本以上。否则只能使用explain 的方式来检查。

profiling 功能可以了解到cpu io 等更详细的信息。

show profile 的格式如下:

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

默认方式下该功能是关闭的:

mysql>select @@profiling;

+-------------+
| @@profiling |
+-------------+
|           0 |
+-------------+
1 row in set (0.00 sec)

打开功能

mysql>set profiling=1;

+-------------+
| @@profiling |
+-------------+
|           1 |
+-------------+
1 row in set (0.00 sec)

输入需要执行的sql 语句:

mysql>select count(*) from sysuser;

mysql>select count(*) from sysuser;

mysql> show profiles/G;
*************************** 1. row ***************************
Query_ID: 1
Duration: 0.00007550
   Query: select count(*) from sysuser
1 row in set (0.00 sec)

通过指定的Query_ID 来查询指定的sql语句的执行信息:

mysql> show profile for query 1;

+--------------------------------+----------+
| Status                         | Duration |
+--------------------------------+----------+
| starting                       | 0.000028 |
| checking query cache for query | 0.000008 |
| checking privileges on cached  | 0.000009 |
| sending cached result to clien | 0.000023 |
| logging slow query             | 0.000004 |
| cleaning up                    | 0.000003 |
+--------------------------------+----------+
6 rows in set (0.00 sec)

mysql> show profile cpu,block io for query 1;
+--------------------------------+----------+----------+------------+--------------+---------------+
| Status                         | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+--------------------------------+----------+----------+------------+--------------+---------------+
| starting                       | 0.000028 |     NULL |       NULL |         NULL |          NULL |
| checking query cache for query | 0.000008 |     NULL |       NULL |         NULL |          NULL |
| checking privileges on cached  | 0.000009 |     NULL |       NULL |         NULL |          NULL |
| sending cached result to clien | 0.000023 |     NULL |       NULL |         NULL |          NULL |
| logging slow query             | 0.000004 |     NULL |       NULL |         NULL |          NULL |
| cleaning up                    | 0.000003 |     NULL |       NULL |         NULL |          NULL |
+--------------------------------+----------+----------+------------+--------------+---------------+
6 rows in set (0.00 sec)

如果不带for 参数则指列出最后一条语句的profile 信息:

mysql> show profile cpu,block io for query 1;
+--------------------------------+----------+----------+------------+--------------+---------------+
| Status                         | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+--------------------------------+----------+----------+------------+--------------+---------------+
| starting                       | 0.000028 |     NULL |       NULL |         NULL |          NULL |
| checking query cache for query | 0.000008 |     NULL |       NULL |         NULL |          NULL |
| checking privileges on cached  | 0.000009 |     NULL |       NULL |         NULL |          NULL |
| sending cached result to clien | 0.000023 |     NULL |       NULL |         NULL |          NULL |
| logging slow query             | 0.000004 |     NULL |       NULL |         NULL |          NULL |
| cleaning up                    | 0.000003 |     NULL |       NULL |         NULL |          NULL |
+--------------------------------+----------+----------+------------+--------------+---------------+
6 rows in set (0.00 sec)

关闭参数:

mysql> set profiling=0

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| profiling     | OFF   |
+---------------+-------+
1 row in set (0.00 sec)

[转]使用mysql profiles 来查看sql 语句执行计划的更多相关文章

  1. db2数据库创建索引,删除索引,查看表索引,SQL语句执行计划以及优化建议

    1.建立表索引 create index 索引名 on 表名(列名,列名); 2.删除表索引 drop index 索引名 on 表名; 3.查看表索引 select * from sysibm.sy ...

  2. SQL Server查看Sql语句执行的耗时和IO消耗

    原文:SQL Server查看Sql语句执行的耗时和IO消耗 在做系统过程中,经常需要针对某些场景进行性能优化,那么如何判定性能优化的效果呢?肯定需要知道优化之前Sql语句的耗时和优化之后Sql语句的 ...

  3. 使用V$SQL_PLAN视图获取曾经执行过的SQL语句执行计划

    通常我们查看SQL语句的执行计划都是通过EXPLAIN PLAN或者AUTOTRACE来完成.但是这些查看方法有一个限制,它们都是人为触发而产生的,无法获得数据库系统中曾经执行过的SQL语句执行计划. ...

  4. EXPLAIN PLAN获取SQL语句执行计划

    一.获取SQL语句执行计划的方式 1. 使用explain plan 将执行计划加载到表plan_table,然后查询该表来获取预估的执行计划 2. 启用执行计划跟踪功能,即autotrace功能 3 ...

  5. MySQL查看SQL语句执行效率

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好 ...

  6. MySQL查看SQL语句执行效率(转)

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好 ...

  7. mysql优化:explain分析sql语句执行效率

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优 ...

  8. 【原创】3. MYSQL++ Query类型与SQL语句执行过程(非template与SSQLS版本)

    我们可以通过使用mysqlpp:: Query来进行SQL语句的增删改查. 首先来看一下mysqlpp::Query的一些最简单的调用, conn.connect(mysqlpp::examples: ...

  9. mysql优化–explain分析sql语句执行效率

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优 ...

随机推荐

  1. CSUOJ Water Drinking

    Description The Happy Desert is full of sands. There is only a kind of animal called camel living on ...

  2. odoo权限管理(二.记录管理)

    规则保存在ir.rule模型表里,需要设置关联某个模型,关联很多组,访问权限控制和domian. 通过domain_force过滤出的一些记录来执行约束. 例子:经理只能删除状态为'cancel'的客 ...

  3. RAR压缩包审计工具unrar-nofree

    RAR压缩包审计工具unrar-nofree   RAR是常见的一种压缩包格式,广泛应用于Windows系统下.Kali Linux提供一款专用的审计工具unrar-nofree.该工具由WinRAR ...

  4. StringBuilder的实现与技巧ZZ

      在上一篇进一步了解String 中,发现了string的不便之处,而string的替代解决方案就是StringBuilder的使用..它的使用也很简单System.Text.StringBuild ...

  5. codevs 2804 最大最小数质因数

    题目描述 Description 先输入n,n<=20;再依次输入n个不同的数,每个数<=1000000;找出最大数和最小数,并输出最大最小数的质因数,没有质因数则输出0. 输入描述 In ...

  6. 闲话函数式变成与OOP

    函数式编程扫盲篇 推薦參考文獻地址:http://byvoid.github.io/slides/apio-fp/index.html 1. 概论 在过去的近十年的时间里,面向对象编程大行其道.以至于 ...

  7. css实现背景图片模糊

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. STM32F4: Generating parallel signals with the FSMC

    STM32F4: Generating parallel signals with the FSMC The goal: The memory controller can be used to ge ...

  9. 使用winrar自解压功能制作安装包

    参考文献: bat脚本设置文件的只读属性:http://wenda.tianya.cn/question/0f484c28ffd8d4e9 bat脚本创建internet快捷方式:http://www ...

  10. Linux Shell脚本入门--wc命令

    wc 统计文件里面有多少单词,多少行,多少字符. wc语法 [root@www ~]# wc [-lwm] 选项与参数: -l :仅列出行: -w :仅列出多少字(英文单字): -m :多少字符: 默 ...