Mysql中的邏輯架構(gòu)是什么-創(chuàng)新互聯(lián)

本篇文章為大家展示了Mysql中的邏輯架構(gòu)是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián) - 成都服務(wù)器托管,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽服務(wù)器托管,德陽服務(wù)器托管,遂寧服務(wù)器托管,綿陽服務(wù)器托管,四川云主機(jī),成都云主機(jī),西南云主機(jī),成都服務(wù)器托管,西南服務(wù)器托管,四川/成都大帶寬,機(jī)柜大帶寬,四川老牌IDC服務(wù)商

Mysql現(xiàn)在是大多數(shù)公司企業(yè)在用的數(shù)據(jù)庫,之所以用Mysql,一點(diǎn)是因?yàn)镸ysql是開源軟件,一些有能力的公司會基于已有的Mysql架構(gòu),進(jìn)行修改、調(diào)整改成適合自己公司的業(yè)務(wù)需要。

一點(diǎn)是因?yàn)镸ysql免費(fèi),相對昂貴的Oracle服務(wù),對于很多剛起步的公司來說,是最適合不過的數(shù)據(jù)庫了。

之所以要認(rèn)識Mysql的邏輯架構(gòu),就好比我們自己在做開發(fā)時(shí),首先需要先掌握自己系統(tǒng)用的分層架構(gòu),這樣在開發(fā)的過程中,如果有哪個(gè)環(huán)節(jié)產(chǎn)生問題,就很好排查。認(rèn)識Mysql的邏輯架構(gòu)也同理,我們在用Mysql的時(shí)候,我們不清楚它什么時(shí)候會出現(xiàn)問題,但是當(dāng)出現(xiàn)問題時(shí)(比如優(yōu)化查詢sql,要從哪一步開始),我們可以更清楚的定位問題。

Mysql中的邏輯架構(gòu)是什么

1.Connections 連接器

我們連接Mysql的服務(wù)作為客戶端連接Mysql服務(wù)端,Mysql可以連接各個(gè)編程語言平臺

2.系統(tǒng)管理和控制工具(Management Serveices & Utilities)

作為Mysql服務(wù)的管理和控制工具,比如備份、還原、復(fù)制、集群等

3.連接池(Connection Pool)

連接池的主要功能是提供連接認(rèn)證、線程復(fù)用、連接數(shù)限制等

4.SQL Interface(SQL接口)

這里主要是接收Mysql 的DML、DDL語句,以及存儲過程、視圖、觸發(fā)器等

5.Parse(解析器)

這里主要的對傳過來的sql字符串進(jìn)行解析,比如我們一開始接觸的jdbc編程,就是將字符串類型的sql語句發(fā)送到mysql里,然后解析器首先對sql語句進(jìn)行詞法分析,形成語法樹,接著再對語法樹進(jìn)行語法分析,看各個(gè)分詞是否符合SQL92標(biāo)準(zhǔn),符合的話再執(zhí)行下一環(huán)節(jié)業(yè)務(wù)處理。

6.查詢優(yōu)化器(Optimizer)

查詢優(yōu)化器根據(jù)傳過來的SQL語句,進(jìn)行分析判斷是否是最優(yōu)的執(zhí)行語句,主要針對一下三個(gè)方面進(jìn)行分析:
* 使用哪一個(gè)索引(一個(gè)表有若干個(gè)索引,選擇過濾力度較大的那個(gè))
* 多表關(guān)聯(lián)的表連接順序
* WHERE條件的先后順序(根據(jù)MYSQL最左前綴原則,會重新擺放條件順序)

7.查詢緩存(Cache&Buffer)

MYSQL會將每一條SQL進(jìn)行hash處理后將hash值放到一個(gè)map中,每次有SQL來時(shí)先計(jì)算SQL的hash值,比較是否相同,相同的話可以執(zhí)行內(nèi)存的SQL,而不必對新的SQL語句進(jìn)行解析、優(yōu)化等操作,加快執(zhí)行效率。

8.存儲引擎(Pluggable Storage Engines)

MSQL的存儲引擎支持可插拔特性,即用戶可隨意替換想用的存儲引擎,也可以自定義自己的存儲引擎,這里主要針對INNODB、MYISAM存儲引擎進(jìn)行分析比較。

Mysql中的邏輯架構(gòu)是什么

平時(shí)涉及到存儲引擎的選型,主要針對業(yè)務(wù)的需要來選擇,可以參考各自的特點(diǎn)。

存儲引擎的選型:

InnoDB:

支持事務(wù)處理,支持外鍵,支持崩潰修復(fù)能力和并發(fā)控制。如果需要對事務(wù)的完整性要求比較高(比如銀行),要求實(shí)現(xiàn)并發(fā)控制(比如售票),那選擇InnoDB有很大的優(yōu)勢。如果需要頻繁的更新、刪除操作的數(shù)據(jù)庫,也可以選擇InnoDB,因?yàn)橹С质聞?wù)的提交(commit)和回滾(rollback)。

MyISAM:

插入數(shù)據(jù)快,空間和內(nèi)存使用比較低。如果表主要是用于插入新記錄和讀出記錄,那么選擇MyISAM能實(shí)現(xiàn)處理高效率。如果應(yīng)用的完整性、并發(fā)性要求比 較低,也可以使用。

MEMORY:

所有的數(shù)據(jù)都在內(nèi)存中,數(shù)據(jù)的處理速度快,但是安全性不高。如果需要很快的讀寫速度,對數(shù)據(jù)的安全性要求較低,不需要持久保存,可以選擇MEMOEY。它對表的大小有要求,不能建立太大的表。所以,這類數(shù)據(jù)庫只使用在相對較小的數(shù)據(jù)庫表。

這里有一張MYSQL的簡單執(zhí)行流程圖,憑靠這張圖對MYSQL整體的一個(gè)執(zhí)行流程會有清晰的認(rèn)識。

Mysql中的邏輯架構(gòu)是什么

上述內(nèi)容就是Mysql中的邏輯架構(gòu)是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前標(biāo)題:Mysql中的邏輯架構(gòu)是什么-創(chuàng)新互聯(lián)
文章分享:http://bm7419.com/article42/geehc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站制作、Google、外貿(mào)網(wǎng)站建設(shè)面包屑導(dǎo)航

廣告

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

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司