mysql 查询性能分析

show status

获取mysql服务器的一些状态信息。

  • Connections 连接次数
  • Uptime 启动后工作的时间
  • Show_queries 慢查询的次数
  • Com_insert 插入的次数
  • Com_delete 删除的次数
  • Com_update 修改的次数
  • Com_select 查询的次数
  • Innodb_row_ 在Innodb下的对应操作次数

在这里插入图片描述

explain

explain加在select语句前面,模拟执行sql语句,输出执行信息

explain select goods.t_name, goods.t_price 
from t_goods goods left join t_goods_category category
on goods.t_category_id = category.id 

在这里插入图片描述

  • id select的序列号

  • select_type sql查询类型

    1. simple 简单查询,不包含任何连接查询和子查询
    2. primary 主查询包含子查询的最外层的查询语句
    3. union 连接查询
    4. dependent union 同union,外层查询
    5. union result 连接查询的结果信息
    6. subquery 第一个子查询
    7. dependent subquery 外层查询,同subquery
    8. derived from的子查询
    9. materialized 实例化子查询
    10. 10.uncacheable union 不缓存的连接查询
  • table 表

  • partitions 分区表

  • type 关联类型或访问类型
    性能从最优到最差
    1. system 查询表只有一行数据
    2. const 查询表中只有一行满足查询
    3. eq_ref 使用了主键或者非空唯一索引的全部字段作为连接查询或者查询条件
    4. ref 查询条件或者连接条件不是主键或者非空唯一索引的全部字段
    5. fulltext 查询包括全文索引
    6. ref_of_null 查询或者连接条件中包括NULL
    7. index_merge 使用索引合并优化
    8. unique_subquery in字段为表主键或者非空唯一索引
    9. index_subquery in字段为非唯一索引
    10. range 查询条件为表中所有索引的字段范围
    11. index 覆盖索引
    12. all 全表扫描

  • possible_keys 可能使用索引

  • key 查询实际会使用到索引

  • key_len 使用到索引的字节长度

  • ref 使用那个值和Key中的索引作比较

  • rows 必须查询的数据行数,引擎为Innodb,则为mysql的估算值

  • filtered 查询条件的百分比

  • extra 额外信息

当前执行的sql语句

select connection_id()
explain for connection -

show profile

查看查询的时间
在这里插入图片描述

pt_query_digest

使用工具包对查询进行分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的天才女友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值