mysql 多邏輯 MySql邏輯架構

2021-10-18 10:10:22 字數 1115 閱讀 9643

一、mysql伺服器邏輯架構圖

每個虛線框都是一層:

第二層:大多數的mysql的核心服務功能都在這一層,包括查詢解析、分析、優化、快取以及所有的內建函式(例如:日期,時間,數學和加密函式等)。所有跨儲存引擎的功能都在這一層實現:儲存過程,觸發器,檢視。

第三層:包含了儲存引擎。儲存引擎負責mysql中的資料儲存和提取。伺服器通過api和儲存引擎進行通訊,這些介面遮蔽了不同儲存引擎之間的差異,使得這些差異對上層的查詢過程透明。儲存引擎api包含了幾十個底層函式,用於執行諸如」開始乙個事務「或者」根據主鍵提取一行記錄「等操作。但儲存引擎不會去解析sql(innodb是乙個例外,它會解析外來鍵定義,因為mysql伺服器本身沒有實現該功能)

二、連線管理和安全性

每個客戶端連線都會在伺服器程序中擁有乙個執行緒,這個鏈結的查詢只會在這個單獨的執行緒中執行,該執行緒只能輪流在某個cpu核心或者cpu中執行。伺服器會負責快取執行緒,因此不需要為每乙個新建的建立或者銷毀執行緒。

當客戶端(應用)連線到mysql伺服器時,伺服器需要對其進行認證。認證基於使用者名稱,原始主機資訊和密碼。如果使用了安全套接字(ssl)的方式連線,還可以使用x.509整數認證。一旦客戶端連線成功,伺服器會繼續驗證該客戶端是否具有執行某個特定查詢的許可權。

三、優化與執行

mysql會解析查詢,並建立內部資料結構(解析樹),然後對其進行各種優化,包括重寫查詢,決定表的讀取順序,以及選擇合適的索引等。使用者可以通過特殊的關鍵字提示(hint)優化器,影響他的決策過程。也可以請求優化器解釋(explain)優化過程的各個因素,使使用者可以知道伺服器是如何進行優化決策的,並提供乙個參考基準,便於使用者重構查詢和schema(對於mysql下的schema,可以理解成就是儲存資料的地方)、修改相關配置,使應用盡可能高效執行。

優化器並不關心表使用的是什麼儲存引擎,但儲存引擎對於優化查詢是有影響的。優化器會起請求儲存引擎提供容量或某個具體操作的開銷資訊,以及表資料的統計資訊等。

對於select語句,在解析查詢之前,伺服器會先檢查快取(query cache),如果能夠在其中找到對應的查詢,伺服器就不必在執行查詢解析、優化和執行的整個過程,而是直接返回查詢快取中的結果集。

mysql 多邏輯 Mysql的邏輯架構

mysql的邏輯架構圖 mysql是分層的 整體分為 connectors 連線驅動 enterprise management services utillties 服務管理器和一些工具 connection pool 連線池 sql interfice sql介面 parser 解析器 opti...

mysql邏輯組 MySql邏輯結構簡介

結構示意圖 如上圖,可把資料庫的結構分成四層,見下圖及文字說明 一 連線層 提供客戶端和連線服務,包含本地sock通訊和大多數基於客戶端 服務端工具實現的類似於tcp ip的通訊,主要完成一些類似於連線處理 授權認證 及相關的安全方案,在該層上引入了執行緒池的概念,為通過認證安全接入的客戶端提供執行...

mysql如何邏輯刪除 mysql邏輯刪除如何恢復

在專案中,一般會遇到這種情況 邏輯刪除以及多關聯不刪除 邏輯刪除 軟刪除 邏輯刪除就是對要被刪除的資料打上乙個刪除標記,通常使用乙個is deleted欄位標示行記錄是不是被刪除 或者使用乙個status欄位代表所謂的 刪除 狀態 在邏輯上是資料是被刪除的,但資料本身是依然存在的。在前端頁面中刪除了...