记录一次数据库疯狂挂掉的解决

本文分享了一次解决Mysql数据库连接数超出限制的问题经历,分析了连接堆积的原因,并详细介绍了如何通过SHOW FULL PROCESSLIST命令查找长期未完成的SQL语句,最终定位并解决了问题,涉及SQL优化和索引调整。
摘要由CSDN通过智能技术生成

最近一个项目不太稳定,客户一会就反应进不去系统了,后台报了mysql超出最大连接数

Mysql 的连接通常是一个请求占用一个连接,如果该请求(update,insert,delete,select)长时间没有执行完毕,则会造成连接的堆积,迅速的消耗完数据库的连接数,这个时候技术支持人员就要登录数据库进行排序,看看到底是那些sql 占用了连接;

通过SHOW FULL PROCESSLIST;查看数据库中有长时间没有执行完成的sql,一直占用着连接没有释放,而应用的请求一直持续不断的涌入数据库,这个时候数据库的连接很快就被使用完;所以这个时候需要排查为什么这些sql 为什么长时间没有执行完毕,是索引没有创建好,还是sql执行耗时严重。

最后排查出来一个sql运行之后mysql直接就卡死,然后贴到本地开始走在了优化sql的路上,该加的索引都加上了还是不行,最后将问题锁定了。

(SELECT @i:=0)

没错,问题出在了这个自动生成序号的东西上,最开始开发的时候数据量小,这个东西用的挺爽,上线之后数据量开始大起来,这个东西就不行了。

感觉以后再也不会用这个东西了>_<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值