【Database】MySQL实战45讲
01 | 基础架构:一条SQL查询语句是如何执行的? 1. MySQL 的基本架构图: MySQL可以分成: Server层 和 存储引擎层 两部分。 Server层:包含连接器、查询缓存、分析器、优化器、执行器等等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(日期,时间,数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程,触发器,视图等。 存储引擎层:负责数据的存储和提取,架构模式是插件式的,支持 InnoDB(默认的存储引擎) , MyISAM, Memory 等多个存储引擎。 【1】连接器 连接器负责和客户端建立连接,获取权限,维持和管理连接。 mysql -h$ip -P$port -u$user -p 连接器要和服务端建立连接。 (1)TCP握手 (2)认证user身份 (3)去权限表里面查询user拥有的权限。(此后这个连接里面的权限判断逻辑,都将依赖于此时读到的权限) 这就意味着,一个用户建立成功连接之后,即使你用管理员账号对这个用户的权限做了修改,也不会影响到已经存在连接的权限。 修改完成之后,只有再新建的连接才会使用新的权限设置。 MySQL查看现在所有的连接: mysql> show processlist; command 列的 Sleep 状态表示现在系统里面有一个空闲连接。 客户端如果太长时间没有动静