Mysql应急调优心得——杀敌一千自损八百

编程入门 行业动态 更新时间:2024-10-05 15:25:57

Mysql应急调优<a href=https://www.elefans.com/category/jswz/34/1769167.html style=心得——杀敌一千自损八百"/>

Mysql应急调优心得——杀敌一千自损八百

短连接问题

顾名思义,短连接就是一个连接到数据库后,执行很少的 SQL 语句就断开,下次需要的时候再重连。如果使用的是短连接,在业务高峰期的时候,就可能出现连接数突然暴涨的情况。
MySQL 建立连接的过程,成本是很高的。除了正常的网络连接三次握手外,还需要做登录权限判断和获得这个连接的数据读写权限。在数据库压力比较小的时候,这些额外的成本并不明显。但是,一旦数据库处理得慢一些,连接数就会暴涨。而一旦MySQL同时连接的数量超过连接数的最大上限,也就是max_connections这个参数,系统就会拒绝接下来的连接请求,并报错提示“Too many connections”。

解决办法:

1.杀掉那些占着连接但不工作的线程

对于那些不需要保持的连接,我们可以通过 kill connection 主动踢掉。这个行为跟事先设置 wait_timeout 的效果是一样的。设置 wait_timeout 参数表示的是,一个线程空闲 wait_timeout 这么多秒之后,就会被 MySQL 直接断开连接。
那么如果主动选择那些,不工作的线程呢。可以通过命令: show processlist 来查看。不过要注意的是,可能会是有损失的。例如有两个线程正在执行,如图所示:


在上面这个例子里,如果断开 session A 的连接,因为这时候 session A 还没有提交,所以 MySQL 只能按照回滚事务来处理;而断开 session B 的连

更多推荐

Mysql应急调优心得——杀敌一千自损八百

本文发布于:2024-02-06 11:27:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1748535.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:心得   Mysql   损八百

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!