搜尋
首頁資料庫mysql教程詳解MySql 整體結構
詳解MySql 整體結構Apr 08, 2021 am 09:59 AM
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 的互動。

相關免費學習推薦:mysql影片教學

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 & Utilities MySQL 的系統管理與控制工具,包括備份還原、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教學##(影片)

#

以上是詳解MySql 整體結構的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除
图文详解mysql架构原理图文详解mysql架构原理May 17, 2022 pm 05:54 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql怎么替换换行符mysql怎么替换换行符Apr 18, 2022 pm 03:14 PM

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本有什么区别mysql的msi与zip版本有什么区别May 16, 2022 pm 04:33 PM

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

mysql怎么去掉第一个字符mysql怎么去掉第一个字符May 19, 2022 am 10:21 AM

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql怎么将varchar转换为int类型mysql怎么将varchar转换为int类型May 12, 2022 pm 04:51 PM

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

MySQL复制技术之异步复制和半同步复制MySQL复制技术之异步复制和半同步复制Apr 25, 2022 pm 07:21 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

带你把MySQL索引吃透了带你把MySQL索引吃透了Apr 22, 2022 am 11:48 AM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

mysql怎么判断是否是数字类型mysql怎么判断是否是数字类型May 16, 2022 am 10:09 AM

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具