- 第一層: 連接處理跳座,授權(quán)認(rèn)證端铛,安全等
- 第二層: 大多數(shù)MySQL的核心服務(wù)功能都在這一層,包括查詢解析疲眷,分析禾蚕,優(yōu)化,緩存以及所有的內(nèi)置函數(shù)狂丝,所有跨存儲(chǔ)引擎的功能都在這一層實(shí)現(xiàn):存儲(chǔ)過程换淆,觸發(fā)器哗总,視圖。
- 第三層: 包含了存儲(chǔ)引擎倍试,存儲(chǔ)引擎負(fù)責(zé)MySQL中數(shù)據(jù)的存儲(chǔ)和提取讯屈。服務(wù)器通過API與存儲(chǔ)引擎進(jìn)行通信,這些接口屏蔽了不同存儲(chǔ)引擎之間的差異县习,存儲(chǔ)引擎包含了幾十個(gè)底層函數(shù)涮母,用于執(zhí)行諸如“開始一個(gè)事務(wù)”或“根據(jù)主鍵提取一行記錄”等操作,但存儲(chǔ)引擎不會(huì)去解析SQL躁愿,不同存儲(chǔ)引擎之間也不會(huì)相互通信叛本,而只是簡(jiǎn)單地響應(yīng)上層服務(wù)器的請(qǐng)求
連接管理與安全性
每個(gè)客戶端連接都會(huì)在服務(wù)器進(jìn)程中擁有一個(gè)線程,這個(gè)連接的查詢只會(huì)在這個(gè)單獨(dú)的線程中執(zhí)行彤钟,客戶端連接到MySQL服務(wù)器時(shí)来候,服務(wù)器需要對(duì)其進(jìn)行認(rèn)證,認(rèn)證基于用戶名逸雹,原始主機(jī)的信息和密碼营搅。
優(yōu)化與執(zhí)行
MySQL會(huì)解析查詢,并創(chuàng)建內(nèi)部數(shù)據(jù)結(jié)構(gòu)(解析樹)梆砸,然后對(duì)其進(jìn)行各種優(yōu)化转质,包括重寫查詢,決定表的讀取順序辫樱,以及選擇合適的索引峭拘。
參考資料: 高性能MySQL》1.2