• 技术文章 >数据库 >mysql教程

    Mysql使用profile分析sql开销的代码

    不言不言2019-03-13 14:15:57转载1041

    本篇文章给大家带来的内容是关于Mysql使用profile分析sql开销的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    Mysql使用profile分析sql开销

    1.使用之前先查看当前数据库的版本信息,低版本无法使用.
        show version();  或者 show variables like '%version%'
    2.查看profiling
        show variables like '%profil%'    ;
    
        result:
            +------------------------+-------+  
            | Variable_name          | Value |  
            +------------------------+-------+  
            | have_profiling         | YES   |   --只读变量,用于控制是否由系统变量开启或禁用profiling  
            | profiling              | OFF   |   --开启SQL语句剖析功能  
            | profiling_history_size | 15    |   --设置保留profiling的数目,缺省为15,范围为0至100,为0时将禁用p
    
        show profiles; 查看是否开启,效果同上.
    3.查看使用说明 
        help profile;
    4.开启profile
        set profiling=1; 赋值时候不要有多余的空格.
    5.运行sql,查看对应的profile
        select * from test ;
        show profiles;            
    
        result:
        +----------+------------+--------------------------------------------------------------------------------------------------------------------------+
        | Query_ID | Duration   | Query                                                                                                                    |
        +----------+------------+--------------------------------------------------------------------------------------------------------------------------+
        |       28 | 0.00033575 | select * from test                                                                                        |
        +----------+------------+--------------------------------------------------------------------------------------------------------------------------+
    
        分析sql性能,分析的时候可以加上对应的开销字段
        show profile [cpu,io][all] for query 28 ;
    
        show profile for query 28 ;
    
        +----------------------+----------+
        | Status               | Duration |
        +----------------------+----------+
        | starting             | 5.7E-5   |
        | checking permissions | 7E-6     |
        | Opening tables       | 1.7E-5   |
        | init                 | 2.3E-5   |
        | System lock          | 8E-6     |
        | optimizing           | 5E-6     |
        | statistics           | 1.1E-5   |
        | preparing            | 9E-6     |
        | executing            | 3E-6     |
        | Sending data         | 8.8E-5   |
        | end                  | 5E-6     |
        | query end            | 6E-6     |
        | closing tables       | 5E-6     |
        | freeing items        | 7.8E-5   |
        | cleaning up          | 1.5E-5   |
        +----------------------+----------+
    6.关闭
        set profiling=off;

    以上就是Mysql使用profile分析sql开销的代码的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:mysql
    上一篇:什么是mysql事务隔离级别? 下一篇:MySQL如何修改用户名?(代码实例)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• PHP如何将excel文件导入mysql数据库?• MySQL 中 DROP USER语句的使用详解• mysql服务无法启动该怎么解决?• 什么是mysql事务隔离级别?
    1/1

    PHP中文网