91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySql整體結構的示例分析

發布時間:2021-04-09 11:04:48 來源:億速云 閱讀:204 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹MySql整體結構的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

MySql整體結構的示例分析

MySql 整體結構

MySQL 由連接池、SQL 接口、解析器、優化器、緩存、存儲引擎等組成,可以分為三層,即 MySQL Server 層、存儲引擎層和文件系統層。MySQL Server 層又包括連接層和 SQL 層。如下是官方文檔中 MySQL 的基礎架構圖:

MySql整體結構的示例分析

上圖中,Connection pool 為連接層,Management Services & Utilities …Caches & Buffers 為 SQL 層,Pluggable Storage Engines 為存儲引擎層,File system、Files & Logs 為文件系統層。

Connectors 不屬于以上任何一層,可以將 Connectors 理解為各種客戶端、應用服務,主要指的是不同語言與 SQL 的交互。

1. 連接層

應用程序通過接口(如 ODBC、JDBC)來連接 MySQL,最先連接處理的是連接層。連接層包括通信協議、線程處理、用戶名密碼認證 3 部分。

  • 通信協議負責檢測客戶端版本是否兼容 MySQL 服務端。
    -線程處理是指每一個連接請求都會分配一個對應的線程,相當于一條 SQL 對應一個線程,一個線程對應一個邏輯 CPU,在多個邏輯 CPU 之間進行切換。
    -密碼認證用來驗證用戶創建的賬號、密碼,以及 host 主機授權是否可以連接到 MySQL 服務器

Connection Pool(連接池)屬于連接層。由于每次建立連接都需要消耗很多時間,連接池的作用就是將用戶連接、用戶名、密碼、權限校驗、線程處理等需要緩存的需求緩存下來,下次可以直接用已經建立好的連接,提升服務器性能。

2. SQL層

SQL 層是 MySQL 的核心,MySQL 的核心服務都是在這層實現的。主要包含權限判斷、查詢緩存、解析器、預處理、查詢優化器、緩存和執行計劃。

  • 權限判斷可以審核用戶有沒有訪問某個庫、某個表,或者表里某行數據的權限。

  • 查詢緩存通過 Query Cache 進行操作,如果數據在 Query Cache 中,則直接返回結果給客戶端,不必再進行查詢解析、優化和執行等過程。

  • 查詢解析器針對 SQL 語句進行解析,判斷語法是否正確。

  • 預處理器對解析器無法解析的語義進行處理。

  • 查詢優化器對 SQL 進行改寫和相應的優化,并生成最優的執行計劃,就可以調用程序的 API 接口,通過存儲引擎層訪問數據。

Management Services & Utilities、SQL Interface、Parser、Optimizer 和 Caches & Buffers 屬于 SQL 層,詳細說明如下表所示。

名稱說明
Management Services & UtilitiesMySQL 的系統管理和控制工具,包括備份恢復、MySQL 復制、集群等。
SQL Interface(SQL 接口)用來接收用戶的 SQL 命令,返回用戶需要查詢的結果。例如 SELECT FROM 就是調用 SQL Interface。
Parser(查詢解析器)在 SQL 命令傳遞到解析器的時候會被解析器驗證和解析,以便 MySQL 優化器可以識別的數據結構或返回 SQL 語句的錯誤。
Optimizer(查詢優化器)SQL 語句在查詢之前會使用查詢優化器對查詢進行優化,同時驗證用戶是否有權限進行查詢,緩存中是否有可用的最新數據。它使用“選取-投影-連接”策略進行查詢。例如 SELECT id, name FROM student WHERE gender = "女";語句中,SELECT 查詢先根據 WHERE 語句進行選取,而不是將表全部查詢出來以后再進行 gender 過濾。SELECT 查詢先根據 id 和 name 進行屬性投影,而不是將屬性全部取出以后再進行過濾,將這兩個查詢條件連接起來生成最終查詢結果。
Caches & Buffers(查詢緩存)如果查詢緩存有命中的查詢結果,查詢語句就可以直接去查詢緩存中取數據。這個緩存機制是由一系列小緩存組成的,比如表緩存、記錄緩存、key 緩存、權限緩存等。

3. 存儲引擎層

Pluggable Storage Engines 屬于存儲引擎層。存儲引擎層是 MySQL 數據庫區別于其他數據庫最核心的一點,也是 MySQL 最具特色的一個地方。主要負責 MySQL 中數據的存儲和提取。

因為在關系數據庫中,數據的存儲是以表的形式存儲的,所以存儲引擎也可以稱為表類型(即存儲和操作此表的類型).

4. 文件系統層

文件系統層主要是將數據庫的數據存儲在操作系統的文件系統之上,并完成與存儲引擎的交互。

文件系統層主要是將數據庫的數據存儲在操作系統的文件系統之上,并完成與存儲引擎的交互。

以上是“MySql整體結構的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

怀安县| 阜新市| 柘荣县| 长岭县| 鲁山县| 浏阳市| 沁阳市| 永修县| 平武县| 南召县| 三明市| 丰宁| 白沙| 左贡县| 新化县| 东乌珠穆沁旗| 黎城县| 昭苏县| 琼结县| 阜宁县| 宁陕县| 辽宁省| 仁怀市| 新闻| 五台县| 漳平市| 临澧县| 武定县| 兴和县| 友谊县| 林口县| 嘉兴市| 托克托县| 普兰店市| 行唐县| 比如县| 堆龙德庆县| 祥云县| 资源县| 定远县| 房山区|