Mysql邏輯架構(gòu)的示例分析

小編給大家分享一下MySQL邏輯架構(gòu)的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在陽城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站,外貿(mào)網(wǎng)站制作,陽城網(wǎng)站建設(shè)費(fèi)用合理。

1. 整體架構(gòu)圖

Mysql邏輯架構(gòu)的示例分析

和其它數(shù)據(jù)庫相比,MySQL有點(diǎn)與眾不同,它的架構(gòu)可以在多種不同場景中應(yīng)用并發(fā)揮良好作用。主要體現(xiàn)在存儲引擎的架構(gòu)上,插件式的存儲引擎架構(gòu)將查詢處理和其它的系統(tǒng)任務(wù)以及數(shù)據(jù)的存儲提取相分離。這種架構(gòu)可以根據(jù)業(yè)務(wù)的需求和實際需要選擇合適的存儲引擎。

各層介紹:

1.1 連接層

最上層是一些客戶端和連接服務(wù),包含本地sock通信和大多數(shù)基于客戶端/服務(wù)端工具實現(xiàn)的類似于tcp/ip的通信。主要完成一些類似于連接處理、授權(quán)認(rèn)證、及相關(guān)的安全方案。在該層上引入了線程池的概念,為通過認(rèn)證安全接入的客戶端提供線程。同樣在該層上可以實現(xiàn)基于SSL的安全鏈接。服務(wù)器也會為安全接入的每個客戶端驗證它所具有的操作權(quán)限。

1.2 服務(wù)層

Mysql邏輯架構(gòu)的示例分析

1.3.引擎層

存儲引擎層,存儲引擎真正的負(fù)責(zé)了MySQL中數(shù)據(jù)的存儲和提取,服務(wù)器通過API與存儲引擎進(jìn)行通信。不同的存儲引擎具有的功能不同,這樣我們可以根據(jù)自己的實際需要進(jìn)行選取。

1.4.存儲層

數(shù)據(jù)存儲層,主要是將數(shù)據(jù)存儲在運(yùn)行于裸設(shè)備的文件系統(tǒng)之上,并完成與存儲引擎的交互。

2. show profile

利用show profile可以查看sql的執(zhí)行周期!

2.1 開啟profile

查看profile是否開啟:show variables  like '%profiling%'

Mysql邏輯架構(gòu)的示例分析

如果沒有開啟,可以執(zhí)行set profiling=1開啟!

2.2 使用profile

執(zhí)行show prifiles命令,可以查看最近的幾次查詢。

Mysql邏輯架構(gòu)的示例分析

根據(jù)Query_ID,可以進(jìn)一步執(zhí)行show profile cpu,block io for query Query_id來查看sql的具體執(zhí)行步驟。

Mysql邏輯架構(gòu)的示例分析

2.3 大致的查詢流程

mysql的查詢流程大致是:

mysql客戶端通過協(xié)議與mysql服務(wù)器建連接,發(fā)送查詢語句,先檢查查詢緩存,如果命中,直接返回結(jié)果,否則進(jìn)行語句解析,也就是說,在解析查詢之前,服務(wù)器會先訪問查詢緩存(query cache)——它存儲SELECT語句以及相應(yīng)的查詢結(jié)果集。如果某個查詢結(jié)果已經(jīng)位于緩存中,服務(wù)器就不會再對查詢進(jìn)行解析、優(yōu)化、以及執(zhí)行。它僅僅將緩存中的結(jié)果返回給用戶即可,這將大大提高系統(tǒng)的性能。

語法解析器和預(yù)處理:首先mysql通過關(guān)鍵字將SQL語句進(jìn)行解析,并生成一顆對應(yīng)的“解析樹”。mysql解析器將使用mysql語法規(guī)則驗證和解析查詢;預(yù)處理器則根據(jù)一些mysql規(guī)則進(jìn)一步檢查解析數(shù)是否合法。

查詢優(yōu)化器當(dāng)解析樹被認(rèn)為是合法的了,并且由優(yōu)化器將其轉(zhuǎn)化成執(zhí)行計劃。一條查詢可以有很多種執(zhí)行方式,最后都返回相同的結(jié)果。優(yōu)化器的作用就是找到這其中最好的執(zhí)行計劃。。

然后,mysql默認(rèn)使用的BTREE索引,并且一個大致方向是:無論怎么折騰sql,至少在目前來說,mysql最多只用到表中的一個索引。

2.4 SQL的執(zhí)行順序

手寫的順序:

Mysql邏輯架構(gòu)的示例分析

真正執(zhí)行的順序:

隨著Mysql版本的更新?lián)Q代,其優(yōu)化器也在不斷的升級,優(yōu)化器會分析不同執(zhí)行順序產(chǎn)生的性能消耗不同而動態(tài)調(diào)整執(zhí)行順序。下面是經(jīng)常出現(xiàn)的查詢順序:

Mysql邏輯架構(gòu)的示例分析

Mysql邏輯架構(gòu)的示例分析

2.5 MyISAM和InnoDB

Mysql邏輯架構(gòu)的示例分析

show engines:查看所有的數(shù)據(jù)庫引擎

Mysql邏輯架構(gòu)的示例分析

show variables like '%storage_engine%' 查看默認(rèn)的數(shù)據(jù)庫引擎

Mysql邏輯架構(gòu)的示例分析

以上是“Mysql邏輯架構(gòu)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

名稱欄目:Mysql邏輯架構(gòu)的示例分析
本文來源:http://muchs.cn/article20/piojjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站排名域名注冊、手機(jī)網(wǎng)站建設(shè)、Google、電子商務(wù)

廣告

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

成都seo排名網(wǎng)站優(yōu)化