mysql调优show profile工具

1.show Profile是什么

show Profile :是mysql提供用来分析当前回话中语句执行消耗资源的情况,可以用来SQL调优。

2.show Profile官网参考

官网:https://dev.mysql.com/doc/refman/8.0/en/show-profile.html

3.查看数据库是否支持show Profile

show variables like '%profiling%'

show Profile开启与关闭

###################开启profile################
set profiling = on


##################关闭profile################
set profiling = off

show Profile使用

第一步:开启 set profiling = on

第二步:执行SQL,就会生成profile记录

第三步:查看开启后profile运行结果

#########查看show profiles 开启后执行记录
show PROFILES;

第四步:诊断SQL(会展示某个sql查询的具体生命周期)

#####################查询具体Query_Id占用的时间#########################
#######################7表示query_id############3333
show profile cpu ,block io for query 7;

除了查看cpu和IO还可以添加这样的参数(主要是用cpu和IO分析)

ALL :显示所有的开销

BLOCK IO 显示块IO开销

CONTEXT SWITCHES  :上下文切换的开销

CPU :显示CPU相关的开销

IPC:显示发送和接收的开销

MEMORY:显示内存相关的开销

PAGE FAULTS 显示页面错误方面的开销

SOURCE:显示source_function ,source_file方面开销

SWAPS:显示交换次数方面的开销

show profiles优化的四个评判标准(重要!!!!)

converting HEAP to MyISM :查询结果太大,内存不够用往磁盘上写

creating temp table :创建临时表,将数据拷贝到临时表中,用完再删除(十分耗时)。

copying to temp table on disk :把内存中的临时表复制到磁盘(十分危险,必须优化)

locked :死锁

延伸:除了用show profile 外还可以通过全局日志查询(千万不能在生产环境中用!!!!!!,只能在测试环境中用)(不推荐,建议通show profile

查看全局日志开启状态


show variables like '%general_log%'

全局日志开启与关闭命令

###############开启是1################
set global general_log = 1

###############关闭是0################
set global general_log = 0

###############输出表###############
set global log_output = 'TABLE'

开启后执行的sql日志的查询

select * from mysql.general_log;

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值