MySQL架構與SQL執行流程

2022-09-16 12:27:10 字數 1932 閱讀 6577

mysql架構設計

下面是一張mysql的架構圖:

上方各個元件的含義如下:

connectors

指的是不同語言中與sql的互動

management serveices & utilities:

系統管理和控制工具

connection pool:連線池

管理緩衝使用者連線,執行緒處理等需要快取的需求。

負責監聽對 mysql server 的各種請求,接收連線請求,**所有連線請求到執行緒管理模組。每乙個連線上 mysql server

的客戶端請求都會被分配(或建立)乙個連線線程為其單獨服務。而連線線程的主要工作就是負責 mysql server 與客戶端的通訊,

接受客戶端的命令請求,傳遞 server 端的結果資訊等。執行緒管理模組則負責管理維護這些連線線程。包括執行緒的建立,執行緒的 cache 等

sql inte***ce:sql介面

接受使用者的sql命令,並且返回使用者需要查詢的結果。比如select from就是呼叫sql inte***ce

parser:命令解析器

sql命令傳遞到解析器的時候會被解析器驗證和解析。解析器是由lex和yacc實現的,是乙個很長的指令碼。

在 mysql中我們習慣將所有 client 端傳送給 server 端的命令都稱為 query ,在 mysql server

裡面,連線線程接收到客戶端的乙個 query 後,會直接將該 query 傳遞給專門負責將各種 query

進行分類然後**給各個對應的處理模組。

主要功能:

a . 將sql語句進行語義和語法的分析,分解成資料結構,然後按照不同的操作型別進行分類,然後做出針對性的**到後續步驟,以後sql語句的傳遞和處理就是基於這個結構的。

b. 如果在分解構成中遇到錯誤,那麼就說明這個sql語句是不合理的

optimizer: 查詢優化器

sql語句在查詢之前會使用查詢優化器對查詢進行優化。就是優化客戶端請求的 query(sql語句) ,根據客戶端請求的 query

語句,和資料庫中的一些統計資訊,在一系列演算法的基礎上進行分析,得出乙個最優的策略,告訴後面的程式如何取得這個 query 語句的結果

他使用的是「選取-投影-聯接」策略進行查詢。

用乙個例子就可以理解:

1

select uid,name fromuser where gender = 1;

這個select 查詢先根據where 語句進行選取,而不是先將表全部查詢出來以後再進行gender過濾

這個select查詢先根據uid和name進行屬性投影,而不是將屬性全部取出以後再進行過濾

將這兩個查詢條件聯接起來生成最終查詢結果

cache和buffer: 查詢快取。

他的主要功能是將客戶端提交 給mysql 的 select 類 query 請求的返回結果集 cache 到記憶體中,與該 query 的乙個 hash 值 做

乙個對應。該 query 所取資料的基表發生任何資料的變化之後, mysql 會自動使該 query 的cache 失效。在讀寫比例非常高的應用系統中, query cache 對效能的提高是非常顯著的。當然它對記憶體的消耗也是非常大的

如果查詢快取有命中的查詢結果,查詢語句就可以直接去查詢快取中取資料。這個快取機制是由一系列小快取組成的。比如表快取,記錄快取,key快取,許可權快取等

儲存引擎介面

儲存引擎介面模組可以說是 mysql 資料庫中最有特色的一點了。目前各種資料庫產品中,基本上只有 mysql

可以實現其底層資料儲存引擎的外掛程式式管理。這個模組實際上只是 乙個抽象類,但正是因為它成功地將各種資料處理高度抽象化,才成就了今天 mysql

可插拔儲存引擎的特色。

注意:儲存引擎是基於表的,而不是資料庫。

sql語句執行流程

連線處理

結果

MySQL架構與執行流程(一)

總體上,我們可以把mysql分為三層,跟客戶端對接的連線層,真正執行操作的服務層,跟硬體打交道的儲存引擎層。客戶端要連線到mysql伺服器3306埠,必須要跟服務端建立連線,那麼管理所有的連線,驗證客戶端的身份和許可權,這些功能都在連線層完成。主要包括聯結器 查詢快取 分析器 優化器 執行器等,所有...

01 MySQL架構與執行流程

一 聯結器 在完成經典的 tcp 握手後,聯結器就要開始認證你的身份,這個時候用的就是你輸入的使用者名稱和密碼。如果使用者名稱密碼認證通過,聯結器會到許可權表裡面查出你擁有的許可權。之後,這個連線裡面的許可權判斷邏輯,都將依賴於此時讀到的許可權。這就意味著,乙個使用者成功建立連線後,即使你用管理員賬...

Spark架構與執行流程

1.闡述hadoop生態系統中,hdfs,mapreduce,yarn,hbase及spark的相互關係。2.spark已打造出結構一體化 功能多樣化的大資料生態系統,請簡述spark生態系統。3.用 描述你所理解的spark執行架構,執行流程。4.軟體平台準備 linux hadoop。1.had...