码迷,mamicode.com
首页 > 数据库 > 详细

MySQL profiling的用法

时间:2015-07-07 14:55:39      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:mysql show profile   mysql profiling   

    MySQL数据库最常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。今天我们不讨论服务器硬件的性能瓶颈,只是谈谈MySQL系统本身,通常需要对数据库进行分析,常见的分析手段有慢查询日志,EXPLAIN 分析查询,profiling分析以及show命令查询系统状态及系统变量,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。

     这个是一系列的文章,今天只谈SHOW PROFILE Syntax。通过它我们可以清楚的知道某条Query的性能瓶颈到底在哪里,是消耗的 CPU计算太多,还是需要的的 IO 操作太多?具体的做法如下:

    1.开启profiling参数
        set profiling=1;
    2.执行Query
        select * from a;
    3.获取系统中保存的所有 Query 的 profile 概要信息
        show profiles;
    4.针对单个 Query 获取详细的 profile 信息。
        show profile all for query 1;

语法如下:

    SHOW PROFILE [type [, type] ... ]
       [FOR QUERY n]
       [LIMIT row_count [OFFSET offset]]

    type:
         ALL:显示所有的开销信息
       | BLOCK IO:显示块IO相关开销
       | CONTEXT SWITCHES:上下文切换相关开销
       | CPU:显示用户CPU时间、系统CPU时间
       | IPC:显示发送和接收相关开销信息
       | MEMORY:目前没有实现
       | PAGE FAULTS:显示页面错误相关开销信息  
       | SOURCE:显示和Source_function,Source_file,Source_line相关的开销信息
       | SWAPS:显示交换次数相关开销的信息 


以上信息也可以通过INFORMATION_SCHEMA.PROFILING表中的信息来查看。


  参考资料:
       https://dev.mysql.com/doc/refman/5.7/en/show-profile.html
       https://dev.mysql.com/doc/refman/5.7/en/profiling-table.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

MySQL profiling的用法

标签:mysql show profile   mysql profiling   

原文地址:http://blog.csdn.net/chenlvzhou/article/details/46787095

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!