01MySql的結(jié)構(gòu)及執(zhí)行流程

mysql的邏輯架構(gòu)分為三層:

? ? 一、客戶端:并非mysql獨(dú)有。功能:連接處理、授權(quán)認(rèn)證、安全等

? ? 二、核心服務(wù):有查詢(xún)解析、分析、優(yōu)化、緩存、內(nèi)置函數(shù)(比如:時(shí)間、加密、截取等);所有的跨存儲(chǔ)引擎的功能都在這里實(shí)現(xiàn),如:存儲(chǔ)過(guò)程、觸發(fā)器、視圖等

? ? 三、存儲(chǔ)引擎:負(fù)責(zé)mysql中的數(shù)據(jù)存儲(chǔ)和提取

mysql的體系結(jié)構(gòu)分為兩層:

? ? 一、mysql服務(wù)層

? ? ? ? 1、連接層:客戶端或引用程序通過(guò)接口(如:ODBC、JDBC)來(lái)連接mysql時(shí)最先通過(guò)連接層

? ? ? ? ? ? 1)通訊協(xié)議:負(fù)責(zé)檢測(cè)客戶端版本是否與服務(wù)端兼容

? ? ? ? ? ? 2)線程處理:對(duì)每一個(gè)連接請(qǐng)求都分配一個(gè)獨(dú)立的線程

? ? ? ? ? ? 3)用戶名密碼認(rèn)證:輸入的賬號(hào)、密碼及主機(jī)(host)是否可以連接到mysql服務(wù)器

? ? ? ? 2、sql層

? ? ? ? ? ? 1)權(quán)限判斷:判斷登錄用戶可以訪問(wèn)到mysql中的那些庫(kù)和表

? ? ? ? ? ? 2)查詢(xún)緩存:查詢(xún)時(shí)如果數(shù)據(jù)在query cache中直接返回否則查詢(xún)數(shù)據(jù)庫(kù)(mysql8中廢棄)

? ? ? ? ? ? 3)解析器:分為詞法解析和語(yǔ)法解析。詞法解析(把sql語(yǔ)句打碎成一個(gè)一個(gè)的單詞,判斷每個(gè)符號(hào)是什么類(lèi)型,從哪兒開(kāi)始從哪兒結(jié)束);語(yǔ)法解析(對(duì)sql進(jìn)行一些語(yǔ)法檢查,比如單引號(hào)有沒(méi)有閉合,根據(jù)sql語(yǔ)句生成一個(gè)數(shù)據(jù)結(jié)構(gòu)叫做解析樹(shù))

? ? ? ? ? ? 4)預(yù)處理器:判斷解析器生成的解析樹(shù)中的表名及字段名是否存在。存在則生成一個(gè)新的解析樹(shù)

? ? ? ? ? ? 5)優(yōu)化器:根據(jù)解析樹(shù)生成不同的執(zhí)行計(jì)劃,然后選擇一條最優(yōu)的執(zhí)行

? ??????????????比如多表聯(lián)合查詢(xún)選擇拿一張表作為基準(zhǔn),有多個(gè)索引時(shí)選擇使用哪個(gè)索引,移除1=1的恒等式等等。優(yōu)化器最終會(huì)把解析樹(shù)變成一個(gè)執(zhí)行計(jì)劃,執(zhí)行計(jì)劃也是一個(gè)數(shù)據(jù)結(jié)構(gòu)。最后選擇的執(zhí)行計(jì)劃不一定是最優(yōu)的執(zhí)行計(jì)劃。我們們?cè)谡Z(yǔ)句執(zhí)行加上explain就可以查詢(xún)到執(zhí)行計(jì)劃的信息。如果想要詳細(xì)的信息,就用format=json。

比如語(yǔ)句為:explain format=json select name from user where user_id = 1

此處參考文章

? ? 二、存儲(chǔ)引擎層(存儲(chǔ)引擎可以根據(jù)官方文檔DIY)

? ? ? ? 1、innodb:支持事物,其設(shè)計(jì)主要應(yīng)用于在線事務(wù)處理中。特點(diǎn):行鎖,支持外鍵。默認(rèn)讀取時(shí)不會(huì)產(chǎn)生鎖,5.5版本后是默認(rèn)的存儲(chǔ)引擎

? ? ? ? 2、myisam:不支持事物,支持全文檢索

? ??????????

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容