# 1.0 MySQL 架构组成
## 1.1 逻辑架构
![图片描述](http://img.mukewang.com/wiki/5e9d6f0209d5893606700244.jpg)
上方是 MySQL 逻辑架构的简单示意图,总的来说,MySQL 包含 Server 层和存储引擎层两大部分。
Server 层包括连接池、查询缓存、解析器、优化器、执行器等,MySQL 的核心服务都在这一层。
存储引擎层负责数据的存储和提取,MySQL 采用插件式的存储引擎,常见的存储引擎有 InnoDB、MyISAM、 CSV 等。其中 InnoDB 是最常用的存储引擎,也是 MySQL 的默认存储引擎(从5.5.5版本开始)。
### 1.1.1 连接池
首先,我们通过 mysql 这个客户端工具进行数据库的连接,这时遇到的是连接池。连接池负责客户端的连接管理、授权认证。
连接命令如下(输入完连接命令后,需要输入用户密码):
```bash
mysql -h localhost -u root -p
```
- 如果用户名和密码认证通过,连接池会通过权限表获取这个用户名所拥有的权限信息;
- 如果用户名或密码认证不通过,则会收到一个错误提示:“ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’”;
### 1.1.2 查询缓存
连接成功建立后,来到第二步查询缓存。查询缓存负责将执行过的语句和结果缓存在内存中。
### 1.1.3 解析器
如果没有命中查询缓存,接下来就要进入解析器阶段了。解析器负责词法解析和语法解析。
### 1.1.4 优化器
从解析器出来,就到了优化器阶段。优化器负责找到最优的执行计划,也就是决定SQL语句的执行方案。
### 1.1.5 执行器
执行器负责调用存储引擎,拿到查询结果。
## 1.2 日志文件和数据文件
## 1.3 一条更新语句如何执行
## 1.1 连接管理与安全性
客户端连接服务端,认证
## 1.2 优化与执行
查询缓存
# 2.0 MySQL 存储引擎
## 2.1 MyISAM 存储引擎
## 2.2 InnoDB 存储引擎
## 2.3 其他存储引擎
# 3.0 MySQL索引
## 3.1 索引解读
## 3.2 B+tree
# 4.0 MySQL 锁
佛挡杀佛
# 5.0 MySQL 事务
# 6.0 备份与恢复
# 7.0 主从复制
[^万物联网管理平台]: 这是详细的买书