MySQL體系結構

從今天開始寫技術博客,作爲菜鳥學生,對很多東西都只是一知半解,因此,不求有多少深度,只求別人能看懂。。。
最近在看姜承堯<MySQL技術內幕 InnoDB存儲引擎>這本書,那就從MySQL數據庫開始寫起吧。
首先從其體系結構開始談起:

由上圖我們可知,MySQL數據庫主要由以下組件組成:
1、Connectors:爲不同語言執行sql的API,比如java中所用的JDBC,定義了用java語言進行sql連接的api。
2、Management Services & Utillties:爲系統管理和控制工具。
3、Connection Pool:爲連接池組件,用於身份認證、線程重用、連接限制、內存檢查、緩存等。
4、SQL Interface->Parser->Optimizer->Caches & Buffers構成SQL查詢解析優化一系列的處理。其中,
SQL Interface爲SQL接口組件,接受用戶的SQL命令,並且返回用戶需要查詢的結果。比如select from就是調用SQL Interface。
Parser爲查詢分析器組件,SQL命令傳遞到解析器的時候會被解析器驗證和解析。解析器是由Lex和YACC實現的,是一個很長的腳本。其主要功能:a.將SQL語句分解成數據結構,並將這個結構傳遞到後續步驟,以後SQL語句的傳遞和處理就是基於這個結構的;b.如果在分解構成中遇到錯誤,那麼就說明這個sql語句是不合理的。
Optimizer爲優化器組件,SQL語句在查詢之前會使用查詢優化器對查詢進行優化。
Caches & Buffers爲緩存組件,如果查詢緩存有命中的查詢結果,查詢語句就可以直接去查詢緩存中取數據;這個緩存機制是由一系列小緩存組成的,比如表緩存,記錄緩存,key緩存,權限緩存等。
5、Pluggable Store Engines:爲插件式存儲引擎,這是MySQL的核心,其作用在於存儲數據、爲存儲的數據建立索引以及查詢、更新數據等。主要有MyISAM、InnoDB、NDB等幾種主流的MySQL存儲引擎。每個存儲引擎都有各自的特點,能夠根據具體的應用建立不同的存儲引擎表。
6、File System:爲物理文件,用於存儲數據文件和日誌文件等。

參考:<MySQL技術內幕 InnoDB存儲引擎> 及 http://www.cnblogs.com/yjf512/archive/2012/02/06/2339496.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章