欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

MySQL的邏輯架構及工作流程是什么

本篇內容主要講解“MySQL的邏輯架構及工作流程是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL的邏輯架構及工作流程是什么”吧!

創(chuàng)新互聯公司專注于什邡網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供什邡營銷型網站建設,什邡網站制作、什邡網頁設計、什邡網站官網定制、成都微信小程序服務,打造什邡網絡公司原創(chuàng)品牌,更為您提供什邡網站排名全網營銷落地服務。

    MySql并不完美,但是卻足夠靈活,能夠適應高要求的環(huán)境。同時,MySql既可以嵌入到應用程序中,也可以支持數據倉庫、內容索引和部署軟件、高可用的冗余系統(tǒng)、在線事務處理系統(tǒng)等各種應用類型。

    為了更心如的理解MySql服務器,我們需要理解MySql各部件之間如何協同工作。需要我們去理解它的邏輯架構。

    下面我們就來介紹一下MySql的邏輯架構:

    MySQL的邏輯架構

    MySQL的最重要、最與眾不同的特性就是它的存儲引擎架構,這種架構將查詢處理以及其他系統(tǒng)任務和數據的存儲/提取相分離。

    所帶來的好處就是可以在使用時根據性能、特性,以及其他需求來選擇數據存儲的方式。

    下圖就是MySQL的邏輯架構圖:

    MySQL的邏輯架構及工作流程是什么

    MySQL架構總共三層,在上圖中以虛線作為劃分。

    首先,最上層的服務并不是MySQL獨有的,大多數給予網絡的客戶端/服務器的工具或者服務都有類似的架構。比如:連接處理、授權認證、安全等?! ?/p>

    第二層的架構包括大多數的MySQL的核心服務。包括:查詢解析、分析、優(yōu)化、緩存以及所有的內置函數(例如:日期、時間、數學和加密函數)。同時,所有的跨存儲引擎的功能都在這一層實現:存儲過程、觸發(fā)器、視圖等。

    第三層包含了存儲引擎。存儲引擎負責MySQL中數據的存儲和提取。服務器通過API和存儲引擎進行通信。這些接口屏蔽了不同存儲引擎之間的差異,使得這些差異對上層的查詢過程透明化。存儲引擎API包含十幾個底層函數,用于執(zhí)行“開始一個事務”等操作。但存儲引擎一般不會去解析SQL(InnoDB會解析外鍵定義,因為其本身沒有實現該功能),不同存儲引擎之間也不會相互通信,而只是簡單的響應上層的服務器請求。

    更加詳細的MySQL系統(tǒng)架構圖

    看完上圖后,大家是不是覺得MySQL的系統(tǒng)架構挺簡單的?其實不然。

    上圖只是MySQL系統(tǒng)架構的大的模塊圖,其實每一層的結構都相當復雜,下圖就是詳細模塊圖:

    MySQL的邏輯架構及工作流程是什么

    首先,我們對該圖中的各個模塊做一簡單介紹: 

    1、Connectors  

    指的是不同語言中與SQL的交互。

    2、Connection Pool  

    管理緩沖用戶連接,線程處理等需要緩存的需求。負責監(jiān)聽對 MySQL Server 的各種請求,接收連接請求,轉發(fā)所有連接請求到線程管理模塊。每一個連接上 MySQL Server 的客戶端請求都會被分配(或創(chuàng)建)一個連接線程為其單獨服務。而連接線程的主要工作就是負責 MySQL Server 與客戶端的通信,接受客戶端的命令請求,傳遞 Server 端的結果信息等。線程管理模塊則負責管理維護這些連接線程。包括線程的創(chuàng)建,線程的 cache 等。

    3、 Management Serveices & Utilities  

    系統(tǒng)管理和控制工具。

    4、 SQL Interface  

    接受用戶的SQL命令,并且返回用戶需要查詢的結果。

    5、 Parser  

    SQL命令傳遞到解析器的時候會被解析器驗證和解析。解析器是由Lex和YACC實現的,是一個很長的腳本。在 MySQL中我們習慣將所有 Client 端發(fā)送給 Server 端的命令都稱為 query ,在 MySQL Server 里面,連接線程接收到客戶端的一個 Query 后,會直接將該 query 傳遞給專門負責將各種 Query 進行分類然后轉發(fā)給各個對應的處理模塊。 

    主要功能

    a 、 將SQL語句進行語義和語法的分析,分解成數據結構,然后按照不同的操作類型進行分類,然后做出針對性的轉發(fā)到后續(xù)步驟,以后SQL語句的傳遞和處理就是基于這個結構的;

    b、 如果在分解構成中遇到錯誤,那么就說明這個sql語句是不合理的。

    6、 Optimizer  

    查詢優(yōu)化器:SQL語句在查詢之前會使用查詢優(yōu)化器對查詢進行優(yōu)化。就是優(yōu)化客戶端請求query,根據客戶端請求的 query 語句,和數據庫中的一些統(tǒng)計信息,在一系列算法的基礎上進行分析,得出一個最優(yōu)的策略,告訴后面的程序如何取得這個 query 語句的結果。

    使用的是“選取-投影-聯接”策略進行查詢:

    用一個例子就可以理解: select uid,name from user where gender = 1;

    這個select 查詢先根據where 語句進行選取,而不是先將表全部查詢出來以后再進行gender過濾;然后根據uid和name進行屬性投影,而不是將屬性全部取出以后再進行過濾。最后將這兩個查詢條件聯接起來生成最終查詢結果。

    7 、Cache和Buffer  

    查詢緩存:主要功能是將客戶端提交 給MySQL 的 Select 類 query 請求的返回結果集 cache 到內存中,與該 query 的一個 hash 值 做一個對應。該 query 所取數據的基表發(fā)生任何數據的變化之后, MySQL 會自動使該 query 的Cache 失效。在讀寫比例非常高的應用系統(tǒng)中, Query Cache 對性能的提高是非常顯著的。當然它對內存的消耗也是非常大的。

    如果查詢緩存有命中的查詢結果,查詢語句就可以直接去查詢緩存中取數據。這個緩存機制是由一系列小緩存組成的。比如表緩存,記錄緩存,key緩存,權限緩存等。

    8 、存儲引擎接口  

    MySQL區(qū)別于其他數據庫的最重要的特點就是其插件式的表存儲引擎。MySQL插件式的存儲引擎架構提供了一系列標準的管理和服務支持,這些標準與存儲引擎本身無關,可能是每個數據庫系統(tǒng)本身都必需的,如SQL分析器和優(yōu)化器等,而存儲引擎是底層物理結構的實現,每個存儲引擎開發(fā)者都可以按照自己的意愿來進行開發(fā)。 

    注意:存儲引擎是基于表的,而不是數據庫。

    數據庫的工作流程

    相信通過上述的介紹,大家對MySQL的邏輯架構已經有了一定的了解,下面我們下來介紹一下數據庫具體的工作流程,先看一張圖:

    MySQL的邏輯架構及工作流程是什么

    在這里,我從數據庫架構的三個層面分別介紹數據庫的工作流程: 

    最上層:客戶端連接  

    1、連接處理:客戶端同數據庫服務層建立TCP連接,連接管理模塊會建立連接,并請求一個連接線程。如果連接池中有空閑的連接線程,則分配給這個連接,如果沒有,在沒有超過最大連接數的情況下,創(chuàng)建新的連接線程負責這個客戶端。  

    2、授權認證:在真正的操作之前,還需要調用用戶模塊進行授權檢查,來驗證用戶是否有權限。通過后,方才提供服務,連接線程開始接收并處理來自客戶端的SQL語句。

    第二層:核心服務  

    1、連接線程接收到SQL語句之后,將語句交給SQL語句解析模塊進行語法分析和語義分析。

    2、如果是一個查詢語句,則可以先看查詢緩存中是否有結果,如果有結果可以直接返回給客戶端。

    3、如果查詢緩存中沒有結果,就需要真的查詢數據庫引擎層了,于是發(fā)給SQL優(yōu)化器,進行查詢的優(yōu)化。如果是表變更,則分別交給insert、update、delete、create、alter處理模塊進行處理。

    第三層:數據庫引擎層  

    1、打開表,如果需要的話獲取相應的鎖。  

    2、先查詢緩存頁中有沒有相應的數據,如果有則可以直接返回,如果沒有就要從磁盤上去讀取。

    3、當在磁盤中找到相應的數據之后,則會加載到緩存中來,從而使得后面的查詢更加高效,由于內存有限,多采用變通的LRU表來管理緩存頁,保證緩存的都是經常訪問的數據。

    最后,獲取數據后返回給客戶端,關閉連接,釋放連接線程。

    到此,相信大家對“MySQL的邏輯架構及工作流程是什么”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

    新聞名稱:MySQL的邏輯架構及工作流程是什么
    本文來源:http://aaarwkj.com/article46/pesjeg.html

    成都網站建設公司_創(chuàng)新互聯,為您提供做網站、網站設計網站排名、App設計、品牌網站建設、品牌網站設計

    廣告

    聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

    綿陽服務器托管
    国产激情视频在线观看你懂的| 国产av不卡二区三区| 国产一级内射在线视频| 国产亚洲一区二区三区av| 91香蕉伊人综合久久麻豆| 欧美一区二区日韩国产| 男男啪啪猛进猛出无遮挡| 中文字幕成人资源网站| 亚洲熟妇av一区二区| 婷婷色爱区综合五月激情| 男人的天堂成人午夜视频| 国产精品精品久久久久久| 少妇高潮特黄在线观看| 亚洲成人精品夫妻av| 宅男午夜一区二区三区| 国产91在线精品超碰人人 | 日本一区二区中文字幕在线| 国产国语久久91老女人| 麻豆视传媒短视频免费看| 亚洲欧美综合伊人看片综合 | 国产精品福利午夜在线观看| 亚洲乱人伦一区二区三区| 中文字幕乱码一区二区欧美| 国产三级久久精品三级91| 日韩欧美一区二区不卡在线| 亚洲视频一区视频二区| 伊人性伊人情亚洲综合| 亚洲国产视频中文字幕| 国产精品传媒成人免费| 天天操操操操操操夜夜爽| 亚洲一区二区三区在线播| av天堂男人站在线观看| 亚洲福利一区福利三区| 日韩欧美国产综合第一页| 日本在线视频精品一区| 国产国语网站在线观看| 91精品国产自产在线观看| 在线成人免费日韩视频| 国产精品大白屁股视频| 亚洲图文一区二区三区四区 | 亚洲天堂福利视频网站|