zoukankan      html  css  js  c++  java
  • mysql性能分析工具

    一、EXPALIN

    在SQL语句之前加上EXPLAIN关键字就可以获取这条SQL语句执行的计划

    那么返回的这些字段是什么呢?

    我们先关心一下比较重要的几个字段:

    1. select_type 查询类型

    1)simple 简单查询,没有UNION和子查询

    2)priamry 主查询,有UNION或子查询的最外层查询

    3)union 联合查询,有UNION的第二个和以后的查询

    4)subquery 子查询,有子查询的除FROM包含的子查询

    5)derived 派生查询,FROM包含的子查询

    6)dependent union, dependent subquery 受到外部表查询影响的union和subquery

    2.type 查询方式

    依次从好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL

    ps:  除了all之外,其他的type都可以使用到索引,除了index_merge之外,其他的type只可以用到一个索引

    1)system 只有一行数据或者是空表,且引擎是myisam

    2)const 常量 WHERE使用唯一索引(主键id,或者其他UNIQUE索引字段)搜索

    3)eq_ref 

    4)ref 常见于辅助索引的等值查找

    5)fulltext 全文索引检索

    6)ref_or_null 与ref方法类似,只是增加了null值的比较

    7)unique_subquery 用于where中的in形式子查询,子查询返回不重复值唯一值

    8)index_subquery 用于where中的iin形式子查询,使用到了辅助索引或者in常数列表,子查询可能返回重复值

    9)range 索引范围扫描,常见于使用>,<,is null,between ,in ,like等运算符的查询中

    10)index_merge 使用了两个以上的索引,最后取交集或者并集

    11)index 遍历索引树

    12)ALL 全表数据扫描

    3. extra 额外讯息

    4. 其他

    1)possible key 此次查询中可能选用的索引,一个或多个

    2)key 查询真正使用到的索引

    3)key_len 索引长度(用到的索引字段的长度相加,例如用到 id int(8) + age int(5) 索引长度为8+5+2=15,加2是固定额外要加的)

    4)rows 估算的扫描行数

    5)filtered 存储引擎返回的数据在server层过滤后,剩下多少满足查询的记录数量的百分比

    二、mysql慢查询日志

    1.找到mysql配置文件(一般在mysql安装目录下)

    Windows为my.ini,Linux为my.cnf

    [mysqld]
    slow_query_log = ON
    slow_query_log_file = '自定义路径'
    long_query_time = 1

    slow_query_log:是否开启慢查询日志

    slow_query_log_file:慢查询日志的位置

    long_query_time:慢查询的标准(秒)

    2.重启mysql守护进程/服务,查看是否生效

    SHOW VARIABLES LIKE '%slow_query%';
    SHOW VARIABLES LIKE '%long_query%';

    3.尝试慢查询

    SELECT SLEEP(3);

    三、Profile 会话级别的性能分析

    1.只能在当前会话使用

    SET profiling = 1;

     

    2.随便输入几句SQL查询语句

    SELECT * FROM house;
    SELECT sleep(1);
    SELECT sleep(3);

    3. show profiles

     4. show profile( 默认显示最近一次查询 select sleep(3) 详细性能报告)

     

    5. show profile for query 2(查询Query_ID为2的查询  select sleep(1)  详细性能报告)

     

  • 相关阅读:
    顺便说说webservice
    了解c3p0,dbcp与druid
    静心己过
    慢慢来写SpringMVC基本项目
    关于druid的配置说明
    想法
    看见了别人的数据库题,随便写写
    Java 工具类
    Java 工具类
    使用JavaMail实现发送模板邮件以及保存到发件箱
  • 原文地址:https://www.cnblogs.com/amiezhang/p/10217133.html
Copyright © 2011-2022 走看看