mysql性能排查

慢日志:找出耗时sql

-- 慢日志,slow_query_log 开关, slow_query_log_file 慢日志文件路径
show variables like 'slow%';

-- 开启慢日志
set global slow_query_log='ON';
-- 设置执行超过多久才记录慢日志
show variables like 'long_query_time';
set global long_query_time=5;

-- 已出现慢日志的次数
show global status like '%Slow_queries%';

explain: 分析sql

typesql
allexplain select * from fund;
explain select url from fund;
indexexplain select id from fund;
explain select code from fund;
explain select name from fund;
rangeexplain select * from fund where id between 35 and 70;
ref联表才有
eq_ref联表才有
constexplain select * from fund where id =35;
explain select * from fund where code=‘011475’;
  • possible_keys: sql可能使用的索引, Key: sql实际使用的索引, rows(rows_examined): 估算的找到所需的结果所需要读取的行数
  • filtered: 表示返回结果的行数占需读取行数的百分比, 值越大越好
extrasql
Using indexexplain select id from fund;
explain select code from fund;
explain select name from fund;
Nullexplain select * from fund;
explain select url from fund;
explain select * from fund where id =35;
explain select * from fund where code=‘011475’;
Using whereexplain select * from fund where id between 35 and 70;
  • Using where:表示优化器需要通过索引回表查询数据;
  • Using index:表示直接访问索引就足够获取到所需要的数据,不需要通过索引回表;

mysql性能监控参数

mysql原理

  • InnoDB主键聚集索引的叶子节点存储行记录,普通索引的叶子节点存储主键值。回表查询,先定位主键值,再定位行记录,它的性能较扫一遍索引树更低
-- 展示所有连接情况
select * from information_schema.processlist where db='sum';
-- 版本
select version();
-- 耗时任意时间的sql
select sleep(6);
-- 5.8 隐藏索引
ALTER TABLE test.user ALTER INDEX name_index INVISIBLE;
ALTER TABLE test.user ALTER INDEX name_index VISIBLE;
-- 
select * from information_schema.processlist where db='sum';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值