一、mysql邏輯架構
mysql最重要的、最與眾不同的特性是它的儲存引擎架構,這種構架的設計將查詢處理及其它系統任務和資料的儲存/提取相分離。
第一層,服務層,最上層的服務並不是mysql獨有的,大多數基於網路的客戶端/服務端的工具或者服務都有類似的架構。主要為請求做連線處理,授權認證,安全等。
第二層,核心層,大多數mysql的核心服務功能都在這一層,包括查詢解析,分析,優化,快取,以及所有的內建函式(例如日期、時間、數學和加密函式),所有跨儲存引擎的功能都在這一層實現:儲存過程,觸發器,檢視等。
第三層,儲存引擎,儲存引擎負責mysql中資料的儲存和提取。伺服器通過api與儲存引擎進行通訊。這些介面遮蔽了不同儲存引擎之間的差異,使得這些差異對上層的查詢過程透明。儲存引擎不會去解析sql,不同儲存引擎之間也不會相互通訊,而只是簡單地響應上層服務的請求。
連線管理與安全性(第一層 服務層)
> 連線流程δ 每個連線的查詢都在乙個程序中的執行緒完成。
δ 伺服器負責快取執行緒,所以服務層不需要為每個新建的連線建立或者銷毀執行緒(可以使用執行緒池)。
> 認證流程
1、當客戶端(應用)連線到mysql伺服器時,伺服器需要對其進行認證。認證基於使用者名稱、原始主機資訊和密碼。如果使用了安全套接字的方式連線,還可以使用x.509證書認證。
2、一旦客戶端連線成功,伺服器會繼續驗證該客戶是否具有執行某個查詢的許可權(例如對某個庫某張表執行查詢語句)
優化與執行
1、mysql會解釋查詢,並建立內部資料結構(解析樹),然後對其進行各種優化,包括重寫查詢、決定表的讀取順序,以及選擇合適的索引等。
2、 對於select語句,在解析查詢之前,伺服器會先檢查查詢快取,如果能命中,伺服器就不必再執行查詢解析、優化和執行的整個過程,直接返回查詢快取中的結果集。
mysql重點:《高性
能mysql》讀書筆記--索引
:
高效能MySQL 讀書筆記
第4章 schema與資料型別優化 第5章 建立高效能的索引 三星索引 最左匹配原則 高效能索引策略 多列索引 mysql採用的是分層架構 上層是server層,下層是儲存引擎層。sql標準中定義了四種隔離級別 隔離級別 定義髒讀 不可重複讀 幻讀加鎖讀 讀未提交 read uncommitted,...
高效能Mysql 讀書筆記
mysql與眾不同的特性是它的儲存引擎架構,這種架構將查詢處理即其他的任務系統和資料的儲存 提取相分離.第二層架構中,大多數的mysql的核心服務功能都在這一層,包括查詢解析,分析優化,快取以及所處的內建函式,所有的跨儲存引擎的功能都在這一層實現 儲存過程,觸發器,檢視等.第三層包含mysql的儲存...
高效能mysql讀書筆記1
譯者序言 本書的定位 系統的從各個方面講述乙個高效能mysq應用應該怎麼做,區別於市面上那些關於mysql開發書籍只是停留在學習mysql基本語句,本書提供了作者一些mysql調優的基準測試從而幫助理解mysql內部的工作機制,本書強調mysql的可用性 準確性以及效能。本書根據mysql5.0穩定...