mysql 比较时间_面试官:mysql怎样设置可以跟踪语句各阶段性能开销?

概述

PROFILE 可以跟踪查询语句各个阶段 Time,IO,CPU,MEMORY 等资源使用情况,比较详细。所以系统一般不会记录太多。启用是全局的,所以每个连接都保持语句的资源使用情况。

The SHOW PROFILE and SHOW PROFILES statements display profiling information that indicates resource usage for statements executed during the course of the current session.


1、查看 PROFILE 是否启用

mysql> select @@profiling;mysql> show variables like '%profiling%';
76d6c46c98b6a1108d2a09782f16845c.png
  • have_profiling :是否可使用 profiling
  • profiling :是否启用
  • profiling_history_size : 保留最近执行的记录数量。默认15,最大100,0相当于禁用。

2、启用profile(为全局变量)

mysql> set profiling = 1;mysql> set profiling_history_size = 10;
3cf76511e44c550bd2b5a8ba8a7bb1e1.png

3、查看当前连接最近执行语句情况,编号越大为当前最近执行的

mysql> show profiles;
3dfc5612fced0fec586de8099e6b4abe.png

4、查看以上查询开销:SHOW PROFILE Syntax

SHOW PROFILE [type [, type] ... ] [FOR QUERY n] [LIMIT row_count [OFFSET offset]]type: ALL | BLOCK IO | CONTEXT SWITCHES | CPU | IPC | MEMORY | PAGE FAULTS | SOURCE | SWAPS

默认显示时间信息,显示了该查询从开始到被清除各个阶段的执行时间。

mysql> show profile;
3d163178e13e50d639187fccf60ef773.png

其他查看方法:

mysql> show profile; #默认显示时间信息mysql> show profile CPU,BLOCK IO; #(时间)加上 CPU,BLOCK IO 使用情况mysql> show profile for query 6; #query_id=6的(时间)信息mysql> show profile CPU for query 6;#query_id=6的cpu信息mysql> show profile CPU limit 6; #前6个状态信息(前6行)mysql> show profile CPU limit 6 offset 2;#第2行起前6个状态信息(前2~7行)

5、关闭跟踪

set profiling = 0;set profiling_history_size = 0;
7ab2dbfd751e4a8380b02fa1f79cca38

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下!

ff86ff8db735fa225bb6ecdc9487ea53.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值