1. 最上層的服務不是mysql獨有,大多數基於網路的的客戶端/伺服器的工具或者服務都有類似的架構。比如:連線處理、授權認證、安全等等。
2. 大多數mysql核心服務功能都在第二層架構中,包括查詢解析、分析、優化、快取、所有的內建函式,以及所有跨儲存引擎的功能如:儲存過程、觸發器、檢視等。
3. 第三層包含了儲存引擎(負責mysql中資料的儲存和提取),伺服器通過api與儲存引擎進行通訊,這些介面遮蔽了不同儲存引擎之間的差異,使得這些差異對上層的查詢過程透明。
每個客戶端連線都會在伺服器程序中擁有乙個執行緒,這個連線的查詢只會在這個單獨的執行緒中執行,該執行緒只能輪流在某個cpu核心或者cpu中執行。伺服器會負責快取執行緒,因此不需要為每乙個新建的連線建立或銷毀先執行緒1
。當客戶端(應用)連線到mysql伺服器時,伺服器需要對其基於原始主機資訊和密碼進行認證。如果使用了安全套接字(ssl)2
進行連線,還可以使用x.509證書認證。當客戶端連線成功,伺服器會繼續驗證該客戶端的許可權資訊。
1. mysql會解析查詢,並建立內部資料結構(解析樹),然後對其進行各種優化。另外,儲存引擎對於優化查詢是有影響的。
2. 解析查詢之前,伺服器會先檢查查詢快取(query cache)是否能找到對應的查詢,存在就不再執行查詢解析、優化和執行的整個過程,而是直接返回查詢快取中的結果集。
mysql5.5或者更新的版本提供了乙個支援執行緒池外掛程式的api,可以使用池中少量的執行緒來服務大量的連線。 ↩︎
安全套接字(secure socket layer, ssl)屬於高層安全機制,廣泛應用於web瀏覽器程式和web伺服器程式,提供對等的身份認證和應用資料的加密。ssl是4個端到端協議,因而是在處於通訊通路端點的機器上實現(通常是在客戶機和伺服器上),而不需要在通訊通路的中間節點(如路由器或防火牆)上實現。 ↩︎
MySQL邏輯架構
庖丁解牛之前應該也是對牛的骨架有乙個全面的認知。同樣學習資料庫也從mysql的邏輯架構開始吧。了解mysql邏輯架構有助於深入理解mysql伺服器。最上層的服務並不是mysql所獨有的,大多數基於網路的客戶端 伺服器的工具或者服務都有類似的架構。比如連線處理 授權認證 安全等等。第二層,mysql大...
MySQL邏輯架構
mysql伺服器邏輯架構圖如下 每個虛線框為一層,總共三層。最上層的服務不是mysql特有的,大多數基於網路的客戶端 伺服器的工具或者服務都有類似的架構,為請求做連線處理,授權認證,安全等。第二層架構是大多數mysql的核心服務功能所在層,包括查詢解析,分析,優化,快取以及所有的內建函式,所有跨儲存...
MySQL 邏輯架構
對mysql架構的基本情況掌握了,才能深入學習高階mysql的一些知識。1.連線層 最上層是一些客戶端和連線服務,包含 本地sock通訊和大多數基於客戶端 服務端工具實現的類似於tcp ip的通訊。主要完成一些類似於連線處理 授權認證 及相關的安全方案。在該層上引入了執行緒池的概念,為通過認證安全接...