资讯专栏INFORMATION COLUMN

Mysql使用profile分析sql开销

xioqua / 1859人阅读

摘要:使用分析开销使用之前先查看当前数据库的版本信息低版本无法使用或者查看只读变量,用于控制是否由系统变量开启或禁用

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;    

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48575.html

相关文章

  • Mysql调优之profile详解

    摘要:可以帮助选择更好的索引和写出更优化的查询语句查询到会执行多少时间并看出使用量执行过程中花多少时间等等本章主要是对做简单的概述,用来对某一条语句进行性能分析。但是在之后,信息将逐渐被废弃,推荐使用。 前言 在我们做mysql性能分析的时候,最常用的有三种方式: (1)慢查询 (分析出现出问题的sql) (2)Explain (显示了mysql如何使用索引来处理select语句以及连接...

    printempw 评论0 收藏0
  • MySQL Sending data导致表查询慢的问题剖析

    摘要:一事故现场上面的这条语句是一个联表分组查询语句。典型情况如查询包含可以按不同情况列出列的和子句时。相关文章实战导致查询很慢的问题详细分析索引无效且耗时巨大原因分析查询占用大量时间的问题处理堵塞和状态多,高详解执行计划详解 最近在代码优化中,发现了一条sql语句非常的慢,于是就用各种方法进行排查,最后终于找到了原因。 一、事故现场 SELECT og.goods_barcode, og....

    oneasp 评论0 收藏0
  • MySQL性能管理及架构设计(三):SQL查询优化、分库分表 - 完结篇

    摘要:第二阶段依照执行计划和存储引擎进行交互这个阶段包括了多个子过程一条查询可以有多种查询方式,查询优化器会对每一种查询方式的存储引擎统计信息进行比较,找到成本最低的查询方式,这也就是索引不能太多的原因。 上一篇:MySQL性能管理及架构设计(二):数据库结构优化、高可用架构设计、数据库索引优化 一、SQL查询优化(重要) 1.1 获取有性能问题SQL的三种方式 通过用户反馈获取存在性能问...

    kycool 评论0 收藏0
  • mysql 优化

    摘要:这就是非聚簇索引主索引和次级索引都指向行在磁盘上的位置索引的叶子节点比较大,上面有索引对应的整条记录,所以查找数据的时候找到了索引后立马能拿到对应的数据,不用再回行到数据文件去拿数据。 mysql 优化 一、 表的优化与列类型选择 1. 表的优化 1.1 定长与变长 核心且常用的字段,宜建成定长放在一个表中 而varchar、text、blob等变长类型的字段,适合放在另外的表中,用主...

    lixiang 评论0 收藏0
  • 面试前必须知道的MySQL命令【explain】

    摘要:前言只有光头才能变强刷面试题的时候,不知道你们有没有见过这两个命令和反正我就见过了之前虽然知道这两个命令大概什么意思,但一直没有去做笔记。读懂命令结果命令输出的结果有列包含一组数字,表示查询中执行子句或操作表的顺序。 前言 只有光头才能变强 刷面试题的时候,不知道你们有没有见过MySQL这两个命令:explain和profile(反正我就见过了).. 之前虽然知道这两个命令大概什么意思...

    Cc_2011 评论0 收藏0

发表评论

0条评论

xioqua

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<