作者:IT王小二
一条 SQL 语句在 MySQL 中怎么执行的呢,这篇就来认识下 MySQL 的各个组件的作用。
一、结构组件
首先需要 MySQL 安装的客官看这两篇,小二演示使用的是 Docker 的安装方式:
先上个图,小二自己画的,绝对的高清无码,嘿嘿。不足之处欢迎指正哈。
1. 企业管理服务和工具
系统管理和控制工具,例如 MySQL 备份恢复、MySQL 复制、MySQL 集群等工具。
2. 连接池
负责监听对客户端向 MySQL Server 端的各种请求,建立连接、权限校验、维持和管理连接,通信方式是半双工模式,数据可以双向传输,但不能同时传输。
- 单工:数据单向发送。
- 半双工:数据双向传输,但不能同时传输。
- 全双工:数据双向传输,可以同时传输。
那么 MySQL 是怎么保存连接得嘞?
每个成功连接 MySQL Server 的客户端请求都会创建或分配一个线程,在内存中分配一块空间存储对应的会话信息,其中包含权限等信息,该线程负责客户端与 MySQL Server 端的通信,接收客户端发送的命令,传递服务端的结果信息等。
用户的权限表在系统表空间的 mysql 库中的 user 表中,这就意味着,一个用户成功建立连接后,即使你用管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限。修改完成后,只有再新建的连接才会使用新的权限设置。
一些有点用的命令。
MySQL 允许最大的连接数
show variables like '%max_connections%';
这个值可以在 my.cnf
文件中配置,Docker 安装完 MySQL 版本为 5.7.36