MySQL性能分析语句show profile

    1. 介绍
  1. Query Profiler是MYSQL自带的一种query诊断分析工具,通过它可以分析出一条SQL语句的性能瓶颈在什么地方。
  2. 通常我们是使用的explain,以及slow query log都无法做到精确分析,但是Query Profiler却可以定位出一条SQL语句执行的各种资源消耗情况,比如CPU,IO等,以及该SQL执行所耗费的时间等。不过该工具只有在MYSQL 5.0.37以及以上版本中才有实现。
  3. 默认的情况下,MYSQL的该功能没有打开,需要自己手动启动
    1. 语句使用
  4. show profile show profiles 语句可以展示当前会话(退出session后,profiling重置为0) 中执行语句的资源使用情况.
  5. show profiles :以列表形式显示最近发送到服务器上执行的语句的资源使用情况.显示的记录数由变量:profiling_history_size 控制,默认15条

  1. show profile: 展示最近一条语句执行的详细资源占用信息,默认显示 Status和Duration两列

  1. show profile 还可根据 show profiles 列表中的 Query_ID ,选择显示某条记录的性能分析信息

 

    1. 开启Profile功能
  1. Profile 功能由MySQL会话变量 : profiling控制,默认是OFF关闭状态。
  2. 查看是否开启了Profile功能:

    * select @@profiling;

    * show variables like ‘%profil%’;

  1. 开启profile功能

* set profiling=1; --1是开启、0是关闭

    1. 示例
  1. 查看是否打开了性能分析功能

select @@profiling;

  1. 打开 profiling 功能

set profiling=1;

  1. 执行sql语句

  1. 执行 show profiles 查看分析列表

  1. 查询第二条语句的执行情况

show profile for query 2;

  1. 可指定资源类型查询

show profile cpu,swaps for query 2;

具体的性能优化细节

  1. 合理的创建及使用索引(考虑数据的增删情况)
  2. 合理的冗余字段(尽量建一些大表,考虑数据库的三范式和业务设计的取舍)
  3. 使用SQL要注意一些细节:select语句中尽量不要使用*、count(*),WHERE语句中尽量不要使用1=1、in语句(建议使用exists)、注意组合索引的创建顺序按照顺序组着查询条件、尽量查询粒度大的SQL放到最左边、尽量建立组合索引
  4. 合理利用慢查询日志、explain执行计划查询、show profile查看SQL执行时的资源使用情况
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值