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%'

mysql调优show profile工具_第1张图片

show Profile开启与关闭

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


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

mysql调优show profile工具_第2张图片

show Profile使用

第一步:开启 set profiling = on

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

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

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

mysql调优show profile工具_第3张图片

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

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

mysql调优show profile工具_第4张图片

除了查看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 :死锁

mysql调优show profile工具_第5张图片

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

查看全局日志开启状态


show variables like '%general_log%'

mysql调优show profile工具_第6张图片

全局日志开启与关闭命令

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

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

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

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

select * from mysql.general_log;

 

 

 

你可能感兴趣的:(mysql)