zoukankan      html  css  js  c++  java
  • SHOW PROFILE

    show profile是由Jeremy Cole捐献给MySQL社区版本的。默认的是关闭的,但是会话级别可以开启这个功能。开启它可以让MySQL收集在执行语句的时候所使用的资源。为了统计报表,把profiling设为1

    mysql> SET profiling = 1;

    之后在运行一个查询

    mysql> SELECT COUNT(DISTINCT actor.first_name) AS cnt_name, COUNT(*) AS cnt

    -> FROM sakila.film_actor

    -> INNER JOIN sakila.actor USING(actor_id)

    -> GROUP BY sakila.film_actor.film_id

    -> ORDER BY cnt_name DESC;

    ...

    997 rows in set (0.03 sec)

    这个执行语句的剖析信息存储在这个会话中。使用SHOW PROFILES进行查看。

    mysql> SHOW PROFILESG

    *************************** 1. row ***************************

    Query_ID: 1

    Duration: 0.02596900

    Query: SELECT COUNT(DISTINCT actor.first_name) AS cnt_name,...

    你可以使用SHOW PROFILE语句来获取已经存储的剖析数据。如果不加参数,会显示状态以及它们持续的时间。

    mysql> SHOW PROFILE;

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

    | Status | Duration |

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

    | (initialization) | 0.000005 |

    | Opening tables | 0.000033 |

    | System lock | 0.000037 |

    | Table lock | 0.000024 |

    | init | 0.000079 |

    | optimizing | 0.000024 |

    | statistics | 0.000079 |

    | preparing | 0.00003 |

    | Creating tmp table | 0.000124 |

    | executing | 0.000008 |

    | Copying to tmp table | 0.010048 |

    | Creating sort index | 0.004769 |

    | Copying to group table | 0.0084880 |

    | Sorting result | 0.001136 |

    | Sending data | 0.000925 |

    | end | 0.00001 |

    | removing tmp table | 0.00004 |

    | end | 0.000005 |

    | removing tmp table | 0.00001 |

    | end | 0.000011 |

    | query end | 0.00001 |

    | freeing items | 0.000025 |

    | removing tmp table | 0.00001 |

    | freeing items | 0.000016 |

    | closing tables | 0.000017 |

    | logging slow query | 0.000006 |

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

    每行都是状态变化的过程以及它们持续的时间。Status那一列和SHOW FULL PROCESSLIST的State应该是一致的。

    这个值是来自于thd->proc_info变量。因此你所查看的这个值是直接来自MySQL内部的。尽管这些数值是比较直接易懂的,你也可以查看MySQL手册。

    你可以给SHOW PROFILES指定一个Query_ID来查看指定的语句,还可以给输出添加新的列。如,查看用户和CPU使用。可以用如下命令。

    mysql> SHOW PROFILE CPU FOR QUERY 1;

    SHOW PROFILE可以深入的查看服务器执行语句的工作情况。以及也能帮助你理解执行语句消耗时间的情况。一些限制是它没有实现的功能,不能查看和剖析其他连接的语句,以及剖析时所引起的消耗。

  • 相关阅读:
    Mac安装WineHQ
    Ubuntu 16.04下使用Wine安装文件比对工具Beyond Compare 4
    Ubuntu 16.04下安装WineHQ
    Ubuntu 16.04下使用Wine安装PowerDesigner15
    Ubuntu 16.04下使用Wine安装Windows版的微信(不太完美)
    Ubuntu 16.04下使用Wine安装Xshell 4和Xftp 4
    MySQL中数据类型(char(n)、varchar(n)、nchar(n)、nvarchar(n)的区别)(转)
    Ubuntu 16.04安装MongoDB的GUI工具RoboMongo
    Linux下Shell的快捷键(转)
    Jackson反序列化错误:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field的解决方法
  • 原文地址:https://www.cnblogs.com/dayhand/p/3623519.html
Copyright © 2011-2022 走看看