mysql性能问题排查,和优化(更新中)

一、介绍

记录一次线上排错,主要表现是用户使用卡顿,CPU爆高。废话少说,直接上干货

二、常用命令和作用

1. 查看当前执行的SQL。

SHOW FULL PROCESSLIST

结果如下:
在这里插入图片描述
查询结果主要有用户(user)、请求的ip和地址(host)、目标数据库(db)、状态【等待/执行中】、执行时长(time)、执行SQL(info)。

2. 查询正在执行的事务

SELECT * FROM information_schema.INNODB_TRX;

结果如下:
在这里插入图片描述
这个用的比较多,找了一个比较详细的说明
在这里插入图片描述

杀掉事务

KILL [trx_mysql_thread_id]

3. 慢SQL相关

1. 查看当前是否开启慢SQL(慢SQL开启或者关闭在my.cnf中,后续会单独写一篇文章)

SHOW VARIABLES LIKE 'slow_query%';

2. 查看当前慢SQL时间阈值

show VARIABLES LIKE '%long_query_time%'

3. 查看慢SQL次数

show global status like '%slow%';

4. 查看当前慢SQL保存方式

show VARIABLES like '%log_output%'

5. 更改慢SQL保存方式(文件-FILE、表-TABLE、不保存-NONE)

SET GLOBAL log_output='TABLE';

4. 查看保存下来的慢SQL记录(这里列举table新式)

SELECT * from mysql.slow_log

4.连接数相关

1. 查看最大的连接数

SHOW VARIABLES LIKE "max_connections";

2. 查看已使用的连接数

SHOW GLOBAL STATUS LIKE 'max_used_connections';

3. 显示当前正在使用的连接信息,包括连接的账号、IP、以及执行的sql、连接状态等

SHOW PROCESSLIST;

4. 优化建议

自己测试下来比较理想的公式是

max_used_connections / max_connections * 100% ≈ 80%

当发现这一比例在10%以下的话,说明最大连接数设置的过高了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值