N.1 介绍

(1)连接数和会话数不一定谁大谁小。有连接数,不一定有会话数,但会话是连接的前提。

一个连接可以包含多个会话。注意:连接数和用户的登录数没有关系,因为一个用户可以通过多个连接进行操作,而一个连接也可以被多个用户共享

(2)例如 MySQL 中的默认设置。每个连接只能执行一个查询,完成查询后连接就会自动关闭。在这种情况下,连接数和会话数是一一对应的。这种方式被称为单线程模型,可以保证数据的一致性和可靠性,但是会影响数据库的并发性能。

(3)例如 PostgreSQL 中的默认设置。每个连接可以同时执行多个查询,这些查询会被分配到不同的会话中进行处理。在这种情况下,连接数和会话数可以不相等。

(4)例如 TiDB 中,默认情况下,一个连接可以执行多个会话(这个要手动开启好像)。每个连接可以同时执行多个查询,这些查询会被分配到不同的会话中进行处理。这种方式被称为多线程模型,可以提高数据库的并发性能。

N.2 mySql介绍

1)同时查看连接数和会话数

命令 show processlist

mysql 会话记录 mysql会话数_mysql 会话记录

2)只查看连接数(类比打开sql编辑面板)

(1)连接数的大小受到MySQL配置文件中max_connections参数的限制,

该参数默认为151。show status like 'Threads_connected'; 常看当前有结果连接数(2)如下图案例使用不一样的软件来连接数据库,总共加起来6个连接。

需要注意,不一样的sql工具, 底层代码逻辑可能是不一样的,统计会有小点误差。

mysql 会话记录 mysql会话数_mysql 会话记录_02

3)只查看会话数(类比执行sql脚本)

(1)show status like 'Threads_running'; 常看当前的会话数,会话数要求是正在执行的sql做回话。而会话数的大小取决于应用程序的并发访问量

(2)如下图案例就是开启了3个执行回话。

mysql 会话记录 mysql会话数_mysql_03