# 1.0 MySQL 架構組成
## 1.1 邏輯架構

上方是 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 主從復制
[^萬物聯網管理平臺]: 這是詳細的買書