MySQL连接方式:长连接或者短连接

MySQL 既支持短连接,也支持长连接。短连接就是操作完毕以后,马上close 掉。长连接可以保持打开,减少服务端创建和释放连接的消耗,后面的程序访问的时候还可以使用这个连接。一般我们会在连接池中使用长连接。

保持长连接会消耗内存。长时间不活动的连接,MySQL 服务器会断开。

show global variables like 'wait_timeout'; -- 非交互式超时时间,如JDBC 程序
show global variables like 'interactive_timeout'; -- 交互式超时时间,如数据库工具

默认都是28800 秒,8 小时。

我们怎么查看MySQL 当前有多少个连接?

可以用show status 命令:

show global status like 'Thread%';

Threads_cached:缓存中的线程连接数。

Threads_connected:当前打开的连接数。

Threads_created:为处理连接创建的线程数。

Threads_running:非睡眠状态的连接数,通常指并发连接数。

每产生一个连接或者一个会话,在服务端就会创建一个线程来处理。反过来,如果要杀死会话,就是Kill 线程。

有了连接数,怎么知道当前连接的状态?

也可以使用SHOW PROCESSLIST; (root 用户)查看SQL 的执行状态。

https://dev.mysql.com/doc/refman/5.7/en/show-processlist.html

一些常见的状态:

https://dev.mysql.com/doc/refman/5.7/en/thread-commands.html

MySQL 服务允许的最大连接数是多少呢?

在5.7 版本中默认是151 个,最大可以设置成16384(2^14)。

show variables like 'max_connections';

show 的参数说明:

1、级别:会话session 级别(默认);全局global 级别

2、动态修改:set,重启后失效;永久生效,修改配置文件/etc/my.cnf

set global max_connections = 1000;

 


版权声明:本文为Leon_Jinhai_Sun原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。