一攻礼、存儲引擎概念:
- 存儲引擎:MySQL服務自帶的功能程序当编,MySQL服務支持多種存儲引擎享甸,例如:
MySQL 5.0/5.1 (MyISAM)
寓落、MySQL 5.5/5.6 (InnoDB)
- 每種存儲引擎功能和數(shù)據(jù)存儲方式各不相同(存儲引擎就是MySQL服務的功能分類)
- 當對表里的數(shù)據(jù)做select 括丁、insert 、 update 伶选、delete 訪問時,MySQL服務根據(jù)表使用的存儲引擎對數(shù)據(jù)做處理
二尖昏、MySQL服務體系結(jié)構(gòu):
mysql服務架構(gòu).png
MySQL服務由8個功能模塊組成
- 管理工具(ManagementServices 8Utilities):安裝MySQL服務軟件后仰税,提供的管理命令
- 連接池(Connectors):驗證客戶端連接時使用的用戶和密碼是否正確 同時驗證數(shù)據(jù)庫服務器是否有mysqld進程相應連接
- SQL接口(SQL Intertace):把用戶執(zhí)行的SQL命令傳遞給本機的mysqld 進程
- 分析器(Parser):檢查SQL命令的語句及對數(shù)據(jù)的訪問權(quán)限
- 優(yōu)化器(Optimizer):對要執(zhí)行的 SQL命令做優(yōu)化(是內(nèi)置自帶功能程序)
- 查詢緩存(Caches & Buffers):劃分出一定的物理內(nèi)存空間給MySQL服務存儲查找過的數(shù)據(jù)。
- 存儲引擎(Pluggable Storage Engines):當對表里的數(shù)據(jù)做查詢(select) 或?qū)懖僮鳎╥nsert /update /delete)會調(diào)用存儲引擎對表中的數(shù)據(jù)做處理抽诉,至于如何處理取決表使用的存儲引擎的功能
- 文件系統(tǒng)(File system):通常指的就是電腦的硬盤
三陨簇、MySQL服務的工作過程:
服務的工作過程.png
MySQL服務處理查詢(selcet)訪問的工作過程:
- 客戶端向服務器發(fā)起連接請求
- 服務器接收到客戶端連接請求并響應
- 回復結(jié)果給到客戶端:
- 如果客戶端執(zhí)行的selcet訪問,先在查詢緩存里提取數(shù)據(jù)回復給客戶端
- 如果數(shù)據(jù)庫服務器在查詢緩存里沒有找到用戶訪問的數(shù)據(jù)迹淌,這時就要到數(shù)據(jù)庫服務器的表里查找數(shù)據(jù)河绽,對數(shù)據(jù)庫目錄下的表做訪問是就會調(diào)用表使用的存儲引擎對表做處理,然后把查找到的數(shù)據(jù)先放到查詢緩存 在回復給客戶端
- 斷開連接
MySQL服務處理存儲(insert)訪問的工作過程:
- 客戶端向服務器發(fā)起連接請求
- 服務器接收到客戶端連接請求并響應
- 根據(jù)表使用的存儲引擎 對表中的數(shù)據(jù)做對應的處理唉窃。
- 斷開連接
四耙饰、在數(shù)據(jù)庫服務器查看與查詢緩存相關的配置項
- 默認禁用狀態(tài),一般使用單個服務器來存儲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 | 默認禁用
| query_cache_wlock_invalidate | OFF |
+------------------------------+---------+