概念解释:
长连接:长连接是相对于短连接来说的。长连接指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。mysql的长连接如果长期闲置,mysql会8小时后(默认时间)主动断开该连接。
短连接:是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。
连接的区别:
使用长连接,短连接各有优势,也各有缺点。我们看看长短连接,系统是怎么做的?
1、短连接:客户端连接--创建socket认证连接--维护连接--数据传输--关闭连接
2、长连接
客户端连接--创建socket认证连接--维护连接--数据传输--维护连接--数据传输.....-关闭连接
2种连接方式都需要系统开销来维护连接,哪种连接最合适并没有准确的说法,主要还是看你客户端的行为。
长短连接的例子
在这里主要讲一个该使用长连接的情况下使用了短连接,本文不会从系统性能负载以及开销去分析,重点是针对mysql的连接做审计来判断。
某业务在审计时候发现连接数一直在直线上升:
mysql> select count(1) from db_monitor.accesslog;+----------+| count(1) |+----------+| 16117 |+----------+1 row in set (0.01 sec)
mysql> select count(1) from db_monitor.accesslog;+----------&