mysql的設(shè)計(jì)架構(gòu)

mysql的設(shè)計(jì)架構(gòu)

ID:28353876

大?。?8.49 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2018-12-09

mysql的設(shè)計(jì)架構(gòu)_第1頁(yè)
mysql的設(shè)計(jì)架構(gòu)_第2頁(yè)
mysql的設(shè)計(jì)架構(gòu)_第3頁(yè)
mysql的設(shè)計(jì)架構(gòu)_第4頁(yè)
mysql的設(shè)計(jì)架構(gòu)_第5頁(yè)
資源描述:

《mysql的設(shè)計(jì)架構(gòu)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、學(xué)生會(huì)的老師就像這個(gè)大家庭里的家長(zhǎng),他(她)們慈愛(ài)而又嚴(yán)厲,老師們教會(huì)我們做人,教會(huì)我們學(xué)習(xí),教會(huì)我們工作。老師對(duì)我們的關(guān)心與疼愛(ài)我們始終看在眼里,記在心里MySQL的設(shè)計(jì)架構(gòu)  對(duì)于初學(xué)者可能MySQL是設(shè)計(jì)框架不是很了解,而其實(shí)在了解內(nèi)存結(jié)構(gòu)等。下面小編就為大家分享下MySQL的設(shè)計(jì)架構(gòu),一起來(lái)看一下吧。  在使用Impala這種所謂大數(shù)據(jù)引擎的時(shí)候,總會(huì)感覺(jué)有些地方設(shè)計(jì)的不是那么盡善盡美,比如說(shuō)緩存,Impala的查詢結(jié)果是沒(méi)有經(jīng)過(guò)緩存的,也就是說(shuō)每次都相當(dāng)于需要重新對(duì)文件執(zhí)行一遍查詢?! ySQL基本架構(gòu)如下圖,是

2、MySQL的邏輯架構(gòu)圖:  最上層的服務(wù)并不是MySQL所獨(dú)有的,大多數(shù)基于網(wǎng)絡(luò)的客戶端/服務(wù)器的工具或者服務(wù)都有類(lèi)似的架構(gòu),比如連接處理、授權(quán)認(rèn)證、安全等等?! 〉诙蛹軜?gòu)是MySQL比較有意思的部分大多數(shù)MySQL的核心服務(wù)功能都在這一層。包括查詢解析、分析、優(yōu)化、緩存以及所有的內(nèi)置函數(shù),所有跨存儲(chǔ)引擎的功能都在這一層實(shí)現(xiàn):存儲(chǔ)過(guò)程、觸發(fā)器、視圖等?! 〉谌龑影舜鎯?chǔ)引擎。存儲(chǔ)引擎負(fù)責(zé)MySQL中數(shù)據(jù)的存儲(chǔ)和提取。和GNU/Linux下的各種文件系統(tǒng)一樣,每個(gè)存儲(chǔ)引擎都有它的優(yōu)勢(shì)和劣勢(shì)。服務(wù)器通過(guò)API與存儲(chǔ)引擎進(jìn)行通

3、信。這些接口屏蔽了不同存儲(chǔ)引擎之間的差異。  下面挑幾個(gè)模塊解釋一下:  1.解析器時(shí)間如白駒過(guò)隙,彈指間,我已在學(xué)生會(huì)工作了一年。這其中有酸有甜有苦也有辣,然而這就是生活,過(guò)于平淡倒顯得無(wú)味,酸甜苦辣俱全方能體現(xiàn)出人生的多彩,方能值得回味,方能使人進(jìn)步!學(xué)生會(huì)的老師就像這個(gè)大家庭里的家長(zhǎng),他(她)們慈愛(ài)而又嚴(yán)厲,老師們教會(huì)我們做人,教會(huì)我們學(xué)習(xí),教會(huì)我們工作。老師對(duì)我們的關(guān)心與疼愛(ài)我們始終看在眼里,記在心里  SQL命令傳遞到解析器的時(shí)候會(huì)被解析器驗(yàn)證和解析。解析器是由Lex和YACC實(shí)現(xiàn)的,是一個(gè)很長(zhǎng)的腳本?! ≈饕δ?/p>

4、:  將SQL語(yǔ)句分解成數(shù)據(jù)結(jié)構(gòu),并將這個(gè)結(jié)構(gòu)傳遞到后續(xù)步驟,以后SQL語(yǔ)句的傳遞和處理就是基于這個(gè)結(jié)構(gòu)的  如果在分解構(gòu)成中遇到錯(cuò)誤,那么就說(shuō)明這個(gè)sql語(yǔ)句是不合理的  2.優(yōu)化器  SQL語(yǔ)句在查詢之前會(huì)使用查詢優(yōu)化器對(duì)查詢進(jìn)行優(yōu)化。他使用的是“選取-投影-聯(lián)接”策略進(jìn)行查詢?! ∮靡粋€(gè)例子就可以理解:selectuid,namefromuserwheregender=1;  這個(gè)select查詢先根據(jù)where語(yǔ)句進(jìn)行選取,而不是先將表全部查詢出來(lái)以后再進(jìn)行g(shù)ender過(guò)濾  這個(gè)select查詢先根據(jù)uid和nam

5、e進(jìn)行屬性投影,而不是將屬性全部取出以后再進(jìn)行過(guò)濾  將這兩個(gè)查詢條件聯(lián)接起來(lái)生成最終查詢結(jié)果?! ?.緩存  如果查詢緩存有命中的查詢結(jié)果,查詢語(yǔ)句就可以直接去查詢緩存中取數(shù)據(jù)。  這個(gè)緩存機(jī)制是由一系列小緩存組成的。比如表緩存,記錄緩存,key緩存,權(quán)限緩存等。時(shí)間如白駒過(guò)隙,彈指間,我已在學(xué)生會(huì)工作了一年。這其中有酸有甜有苦也有辣,然而這就是生活,過(guò)于平淡倒顯得無(wú)味,酸甜苦辣俱全方能體現(xiàn)出人生的多彩,方能值得回味,方能使人進(jìn)步!學(xué)生會(huì)的老師就像這個(gè)大家庭里的家長(zhǎng),他(她)們慈愛(ài)而又嚴(yán)厲,老師們教會(huì)我們做人,教會(huì)我們學(xué)習(xí)

6、,教會(huì)我們工作。老師對(duì)我們的關(guān)心與疼愛(ài)我們始終看在眼里,記在心里  補(bǔ)充知識(shí)  1.查詢優(yōu)化和執(zhí)行(OptimizationandExecution)  MySQL將用戶的查詢語(yǔ)句進(jìn)行解析,并創(chuàng)建一個(gè)內(nèi)部的數(shù)據(jù)結(jié)構(gòu)——分析樹(shù),然后進(jìn)行各種優(yōu)化,例如重寫(xiě)查詢、選擇讀取表的順序,以及使用哪個(gè)索引等?! 〔樵儍?yōu)化器不關(guān)心一個(gè)表所使用的存儲(chǔ)引擎,但是存儲(chǔ)引擎會(huì)影響服務(wù)器如何優(yōu)化查詢。優(yōu)化器通過(guò)存儲(chǔ)引擎獲取一些參數(shù)、某個(gè)操作的執(zhí)行代價(jià)、以及統(tǒng)計(jì)信息等。在解析查詢之前,服務(wù)器會(huì)先訪問(wèn)查詢緩存(querycache)——它存儲(chǔ)SELECT

7、語(yǔ)句以及相應(yīng)的查詢結(jié)果集。如果某個(gè)查詢結(jié)果已經(jīng)位于緩存中,服務(wù)器就不會(huì)再對(duì)查詢進(jìn)行解析、優(yōu)化、以及執(zhí)行。它僅僅將緩存中的結(jié)果返回給用戶即可,這將大大提高系統(tǒng)的性能?! ?.并發(fā)控制(鎖粒度)  MySQL提供兩個(gè)級(jí)別的并發(fā)控制:服務(wù)器級(jí)(theserverlevel)和存儲(chǔ)引擎級(jí)(thestorageenginelevel)。加鎖是實(shí)現(xiàn)并發(fā)控制的基本方法,MySQL中鎖的粒度:  表級(jí)鎖:MySQL獨(dú)立于存儲(chǔ)引擎提供表鎖,例如,對(duì)于ALTERTABLE語(yǔ)句,服務(wù)器提供表鎖(table-levellock)。  行級(jí)鎖:Inn

8、oDB和Falcon存儲(chǔ)引擎提供行級(jí)鎖,此外,BDB支持頁(yè)級(jí)鎖。InnoDB的并發(fā)控制機(jī)制,下節(jié)詳細(xì)討論。時(shí)間如白駒過(guò)隙,彈指間,我已在學(xué)生會(huì)工作了一年。這其中有酸有甜有苦也有辣,然而這就是生活,過(guò)于平淡倒顯得無(wú)味,酸甜苦辣俱全方能體現(xiàn)出人生的多彩,方能值得回味,方能使人進(jìn)步!學(xué)生會(huì)的老師

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。