這篇文章給大家分享的是有關MySQL體系架構(gòu)的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
為龍華等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及龍華網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站建設、成都網(wǎng)站設計、龍華網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!MySQL 體系架構(gòu)
MySQL 體系架構(gòu)主要分為兩部分:客戶端和服務端
客戶端
客戶端連接器主要負責一些客戶端的連接,針對不同的編程語言驅(qū)動提供連接服務。
服務端
服務層包括:系統(tǒng)管理和控制工具,連接池,SQL接口,解析器,查詢優(yōu)化器,緩存。
連接池
負責管理客戶端與服務層數(shù)據(jù)處理的連接,以及對用戶執(zhí)行操作權(quán)限的校驗。
系統(tǒng)管理和控制工具
負責備份安全,安全管理,集群管理服務和工具等。
SQL接口
接收客戶端 sql命令 ,返回用戶需要的結(jié)果。如:dml,ddl,存儲過程,視圖,觸發(fā)器等命令。
解析器
詞語(關鍵字)分析,語法分析,接收sql 將其解析,生成解析樹,并且語法校驗檢查。
查詢優(yōu)化器:對生成解析樹后并且通過解析器語法后,由優(yōu)化器選擇合適的索引,然后生成執(zhí)行計劃,然后與執(zhí)行引擎交互。
緩存
緩存機制是由一系列緩存組合起來的。
如:表緩存,記錄緩存(sql查詢結(jié)果緩存起來,等下一次相同sql查詢,從緩存中返回),
權(quán)限緩存,引擎緩存等。如果緩存命中,會直接從緩存中獲取數(shù)據(jù)。
存儲引擎層
負責Mysql 數(shù)據(jù)的讀取和存取,如 InnoDB,MyISAM等。 可插拔式的,可以更換不同的存儲引擎。
系統(tǒng)文件層
如日志,數(shù)據(jù)文件等。
一條SQL的執(zhí)行流程
首先客戶端進行連接;
其次在server層的連接管理器中驗證用戶權(quán)限等操作;
然后如果是非8.0版本的話會去緩存池中查看當前的sql的緩存,如果有直接返回;
如果緩存中沒有則會由解析器語法語義生成解析樹;
優(yōu)化器解析生成執(zhí)行計劃,并且選擇合適的索引;
存儲引擎調(diào)用API接口去查詢數(shù)據(jù),將查詢到的數(shù)據(jù)更新緩存cache;
最后返回給客戶端;
存儲引擎層
存儲引擎是 MySQL 中具體與文件打交道的子系統(tǒng),是基于文件系統(tǒng)抽象出來用于mysql和磁盤文件打交道的一個系統(tǒng);
常用的存儲引擎, MyISAM、支持事務的 InnoDB;
MySQL 5.6 版本之前,默認的存儲引擎都是 MyISAM;
5.6 版本以后默認的存儲引擎就是 InnoDB ;
功能對比
InnoDB 支持 ACID 的事務 4 個特性,而 MyISAM 不支持;
InnoDB 支持 4 種事務隔離級別,默認是可重復讀 Repeatable Read 的,MyISAM 不支持;
InnoDB 支持 crash 安全恢復,MyISAM 不支持;
InnoDB 支持外鍵,MyISAM 不支持;
InnoDB 支持行級別的鎖粒度,MyISAM 不支持,只支持表級別的鎖粒度;
InnoDB 支持 MVCC,MyISAM 不支持;
感謝各位的閱讀!關于“MySQL體系架構(gòu)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!