一、存儲(chǔ)引擎概念:
- 存儲(chǔ)引擎:MySQL服務(wù)自帶的功能程序,MySQL服務(wù)支持多種存儲(chǔ)引擎,例如:
MySQL 5.0/5.1 (MyISAM)、MySQL 5.5/5.6 (InnoDB) - 每種存儲(chǔ)引擎功能和數(shù)據(jù)存儲(chǔ)方式各不相同(存儲(chǔ)引擎就是MySQL服務(wù)的功能分類)
- 當(dāng)對(duì)表里的數(shù)據(jù)做select 、insert 、 update 、delete 訪問時(shí),MySQL服務(wù)根據(jù)表使用的存儲(chǔ)引擎對(duì)數(shù)據(jù)做處理
二、MySQL服務(wù)體系結(jié)構(gòu):

mysql服務(wù)架構(gòu).png
MySQL服務(wù)由8個(gè)功能模塊組成
- 管理工具(ManagementServices 8Utilities):安裝MySQL服務(wù)軟件后,提供的管理命令
- 連接池(Connectors):驗(yàn)證客戶端連接時(shí)使用的用戶和密碼是否正確 同時(shí)驗(yàn)證數(shù)據(jù)庫(kù)服務(wù)器是否有mysqld進(jìn)程相應(yīng)連接
- SQL接口(SQL Intertace):把用戶執(zhí)行的SQL命令傳遞給本機(jī)的mysqld 進(jìn)程
- 分析器(Parser):檢查SQL命令的語(yǔ)句及對(duì)數(shù)據(jù)的訪問權(quán)限
- 優(yōu)化器(Optimizer):對(duì)要執(zhí)行的 SQL命令做優(yōu)化(是內(nèi)置自帶功能程序)
- 查詢緩存(Caches & Buffers):劃分出一定的物理內(nèi)存空間給MySQL服務(wù)存儲(chǔ)查找過的數(shù)據(jù)。
- 存儲(chǔ)引擎(Pluggable Storage Engines):當(dāng)對(duì)表里的數(shù)據(jù)做查詢(select) 或?qū)懖僮鳎╥nsert /update /delete)會(huì)調(diào)用存儲(chǔ)引擎對(duì)表中的數(shù)據(jù)做處理,至于如何處理取決表使用的存儲(chǔ)引擎的功能
- 文件系統(tǒng)(File system):通常指的就是電腦的硬盤
三、MySQL服務(wù)的工作過程:

服務(wù)的工作過程.png
MySQL服務(wù)處理查詢(selcet)訪問的工作過程:
- 客戶端向服務(wù)器發(fā)起連接請(qǐng)求
- 服務(wù)器接收到客戶端連接請(qǐng)求并響應(yīng)
- 回復(fù)結(jié)果給到客戶端:
- 如果客戶端執(zhí)行的selcet訪問,先在查詢緩存里提取數(shù)據(jù)回復(fù)給客戶端
- 如果數(shù)據(jù)庫(kù)服務(wù)器在查詢緩存里沒有找到用戶訪問的數(shù)據(jù),這時(shí)就要到數(shù)據(jù)庫(kù)服務(wù)器的表里查找數(shù)據(jù),對(duì)數(shù)據(jù)庫(kù)目錄下的表做訪問是就會(huì)調(diào)用表使用的存儲(chǔ)引擎對(duì)表做處理,然后把查找到的數(shù)據(jù)先放到查詢緩存 在回復(fù)給客戶端
- 斷開連接
MySQL服務(wù)處理存儲(chǔ)(insert)訪問的工作過程:
- 客戶端向服務(wù)器發(fā)起連接請(qǐng)求
- 服務(wù)器接收到客戶端連接請(qǐng)求并響應(yīng)
- 根據(jù)表使用的存儲(chǔ)引擎 對(duì)表中的數(shù)據(jù)做對(duì)應(yīng)的處理。
- 斷開連接
四、在數(shù)據(jù)庫(kù)服務(wù)器查看與查詢緩存相關(guān)的配置項(xiàng)
- 默認(rèn)禁用狀態(tài),一般使用單個(gè)服務(wù)器來存儲(chǔ)MySql的緩存
mysql> show variables like "%query_cache%";
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 1048576 |
| query_cache_type | OFF | 默認(rèn)禁用
| query_cache_wlock_invalidate | OFF |
+------------------------------+---------+