mysql profiles_mysql show profiles 看这篇就够了

定义:

显示sql执行过程中各个环节的消耗情况,例如cpu使用情况,打开表、检查权限、执行优化器、返回数据等分别用了多长时间,可以分析语句执行慢的瓶颈在哪。

如果要使用这个命令首先要设置profiling为on,mysql默认设置为off;

设置profiling,及查看当前profiling的值

查看当前profiling的值

select @@profiling

设置打开profiling

set profiling =1;

or

set profiling=on;

设置关闭profiling

set profiling=0;

or

set profiling=off;

show profiles 默认显示最近15条的sql执行情况,15这个数字由profiling_history_size常量决定,你可以配置为0到100的数字最大支持100,如果设置为0则类似于

关闭profiling选项。

除了show profile 和show profiles 两个命令不会被记录之外,其余的语句都会被记录,即使是语法错误的sql也会被记录。

show profile 命令默认获取最新一条执行的sql的消耗分析,如果想指定获取某一条sql的profile 用如下命令:

show profiles 先获取要分析的query_id,然后执行

show profile for query query_id;

show profiles以及show profile 命令同时也支持 limit语句。

show profile 命令 默认只显示Duration 列总消耗时间,如果要显示更多可以设置 all参数

show profile [type];

type 参数支持如下:

| ALL :表示所有的列

| BLOCK IO :数据块的输出出入操作次数

| CONTEXT SWITCHES : 上下文切换次数

| CPU:cpu使用时长 包括系统时长和用使用时长

| IPC :发送和接收数据的 次数

| PAGE FAULTS:重要的和次要的错误次数

| SOURCE:执行相应操作的mysql源文件,包括源文件方法名,地址、所在行;

| SWAPS:swap次数

提示:实际上这些数据全都存在mysql的表里,你可以执行如下查询一样可以获取相同的信息。

SELECT * FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID = query_id;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值