mysql性能问题的临时解决方案

本文针对MySQL性能问题,提出包括处理短连接风暴、慢查询及QPS暴增等场景的解决方案,如合理调整max_connections参数、kill空闲链接、使用query_rewrite功能等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql遇到性能问题,当然是优先恢复业务,这里分析几个场景。

短连接风暴

max_connections参数表示数据库支持的最大的链接数,超过这个数量会抛异常“too many connections”.

当mysql负载比较大的时候,每个链接的处理时间也比较长,极有可能出现“too many connections”,通过增加max_connections来解决这个场景不是好主意,因为mysql负载已经很大了

解决办法是

  • kill掉空闲链接
  • 跳过权限验证,减少链接时候的消耗。方式时通过-skip-grant-tables参数重启数据库。

show processlist查看所有链接。
max_connections表示的是所有的链接,但是有些链接并没有处于running状态,可以kill掉

优先kill不在事务里的链接,损失小

慢查询

慢查询的原因有三种

  • 索引没有设计好。直接alter table加索引。
  • sql语句没写好。mysql5.7提供query_rewrite,可以在线替换sql。
  • mysql没有选对索引。用query_rewrite给sql加上force index

QPS暴增

由于业务暴增或者业务bug导致qps暴增
DBA可以做这样几件事

  • 如果有应用白名单,直接去掉这个应用
  • 如果有业务账号分离,把这个应用所使用的账号删掉
  • 用query_rewrite功能止血
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值