MYSQL-show Profile诊断SQL以及配置优化

Show profile 简介


          Show Profile 是 MySQL 提供的可以用来分析当前会话中,SQL 语句资源消耗情 况的工具,可用于 SQL 调优的测量。在当前会话中.默认情况下处于 show profile 是关闭状态,打开之后保存最近 15 次的运行结果 针对运行慢的 SQL,通过 profile 工具进行详细分析.可以得到 SQL 执行过程中 所有的资源开销情况. 如 IO 开销,CPU 开销,内存开销等


通常在工作当中,我们会通过一些Mysql提供的一些语法来使用Show profile ;

#查看数据库是否支持show Profile,如果查询profiling出来的结果是是off,可以通过以下语句自行开启。
show variables like '%profiling%';

###################开启profile################
set profiling = on;
##################关闭profile################
set profiling = off;


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

# 返回如下属性
# Query_ID 开启后profiling查询的记录数
# Duration 代表查询这条SQL持续的时间


# 诊断SQL(会展示某个sql查询的具体生命周期)
show profile cpu ,block io for query 1;
# 返回如下属性
# ALL :显示所有的开销
# BLOCK IO 显示块IO开销
# CONTEXT SWITCHES  :上下文切换的开销
# CPU :显示CPU相关的开销
# IPC:显示发送和接收的开销
# MEMORY:显示内存相关的开销
# PAGE FAULTS 显示页面错误方面的开销
# SOURCE:显示source_function ,source_file方面开销
# SWAPS:显示交换次数方面的开销

# converting HEAP to MyISM :查询结果太大,内存不够用往磁盘上写
# creating temp table :创建临时表,将数据拷贝到临时表中,用完再删除(十分耗时)。
# copying to temp table on disk :把内存中的临时表复制到磁盘(十分危险,必须优化)
# locked :死锁
# 除了用show profile 外还可以通过全局日志查询(千万不能在生产环境中用!!!!!!,只能在测试环境中用)(不推荐,建议通show profile)
# 查看全局日志开启状态 show variables like '%general_log%'
MySQL 程序配置优化

Mysql的配置优化 一般是通过 Mysql 中的配置文件 my.cnf 来完成的,
比如: Mysql5.7 版本默认的最大连接数是 151 个,这个值可以在 my.cnf 中修改。
binlog 日志,默认是不开启
缓存池 bufferpoll 的默认大小配置等。
由于这些配置一般都和用户安装的硬件环境以及使用场景有关系,因此这些配置
官方只会提供一个默认值,具体情况还得由使用者来修改。
关于配置项的修改,需要关注两个方面。
l 配置的作用域,分为会话级别和全局
l 是否支持热加载
因此,针对这两个点,我们需要注意的是:
l 全局参数的设定对于已经存在的会话无法生效
l 会话参数的设定随着会话的销毁而失效
l 全局类的统一配置建议配置在默认配置文件中,否则重启服务会导致配置失效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

、小H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值