mysql 学习笔记 01
知识大纲 客户端查询请求流程 先来看客户端运行一条查询 sql 会经过哪些流程: mysql 基本组成结构 从上面的图中可以看出,mysql 大致由 server 层 和 存储引擎层组成。 为了管理方便,mysql 把连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存储的功能划分为 server 层的功能,把真实存取数据的功能划分为存储引擎的功能。 下面详细说明下各个模块的功能: 一、server server 层又分别由 连接器、查询缓存、分析器、优化器、执行器组成。 1.1 连接器 mysql 是 C/S 架构,每当有一个客户端连接到服务器时,服务器都会创建一个线程来专门处理与这个客户端的交互。 客户端和服务端的连接方式总共有三种。 TCP/IP 命名管道和共享内存(Windows 系统, 客户端和服务端 必须在同一台机器) Unix 域套接字文件(类Unix 系统,客户端和服务端 必须在同一台机器) 注意: 如果用户名密码认证通过,连接器会到权限表里面查出你拥有的权限。之后,这个连接里面的权限判断逻辑,都将依赖于此时读到的权限。 也就是说即使管理员在此时修改了用户的数据库权限,只有用户重新建立连接才会生效。 当客户端与服务端建立连接后,客户端就会以文本消息的方式与服务端通信(CRUD)。服务端接收到消息后(比如一个查询请求),还要进行一系列处理,才能返回数据给客户端