欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入了解Mysql邏輯架構(gòu)

 更新時(shí)間:2020年12月23日 10:06:46   作者:晴轉(zhuǎn)陣雨  
這篇文章主要介紹了深入了解Mysql邏輯架構(gòu)的原因,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下

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

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

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

1.Connections 連接器

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

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

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

3.連接池(Connection Pool)

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

4.SQL Interface(SQL接口)

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

5.Parse(解析器)

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

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

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

7.查詢緩存(Cache&Buffer)

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

8.存儲(chǔ)引擎(Pluggable Storage Engines)

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

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

存儲(chǔ)引擎的選型:

InnoDB:

支持事務(wù)處理,支持外鍵,支持崩潰修復(fù)能力和并發(fā)控制。如果需要對(duì)事務(wù)的完整性要求比較高(比如銀行),要求實(shí)現(xiàn)并發(fā)控制(比如售票),那選擇InnoDB有很大的優(yōu)勢(shì)。如果需要頻繁的更新、刪除操作的數(shù)據(jù)庫(kù),也可以選擇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ù)的處理速度快,但是安全性不高。如果需要很快的讀寫速度,對(duì)數(shù)據(jù)的安全性要求較低,不需要持久保存,可以選擇MEMOEY。它對(duì)表的大小有要求,不能建立太大的表。所以,這類數(shù)據(jù)庫(kù)只使用在相對(duì)較小的數(shù)據(jù)庫(kù)表。

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

   MYSQL的邏輯架構(gòu)就介紹到這里。當(dāng)然MYSQL還有對(duì)應(yīng)的物理架構(gòu),不過(guò)這一塊主要涉及到MYSQL的各個(gè)日志文件,以及各個(gè)表的數(shù)據(jù)文件以及索引文件,在后面的章節(jié)再做介紹。

以上就是深入了解Mysql邏輯架構(gòu)的詳細(xì)內(nèi)容,更多關(guān)于Mysql邏輯架構(gòu)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Perl DBI操作MySQL的一些建議

    使用Perl DBI操作MySQL的一些建議

    這篇文章主要介紹了使用Perl DBI操作MySQL的一些建議,針對(duì)Perl下連接MySQL的DBD::MySQL這個(gè)模塊,需要的朋友可以參考下
    2015-05-05
  • 詳解grep獲取MySQL錯(cuò)誤日志信息的方法

    詳解grep獲取MySQL錯(cuò)誤日志信息的方法

    在本篇文章中小編給大家整理了關(guān)于通過(guò)grep 獲取MySQL錯(cuò)誤日志信息的方法的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)下。
    2018-09-09
  • Mysql中聚簇索引和非聚簇索引的區(qū)別詳解

    Mysql中聚簇索引和非聚簇索引的區(qū)別詳解

    這篇文章主要介紹了Mysql中聚簇索引和非聚簇索引的區(qū)別詳解,聚簇索引就是按照每張表的主鍵構(gòu)造一顆B+樹(shù),同時(shí)葉子節(jié)點(diǎn)中存放的就是整張表的行記錄數(shù)據(jù),也將聚集索引的葉子節(jié)點(diǎn)稱為數(shù)據(jù)頁(yè),需要的朋友可以參考下
    2023-07-07
  • MySQL產(chǎn)生死鎖原因分析講解

    MySQL產(chǎn)生死鎖原因分析講解

    死鎖指的是在兩個(gè)或兩個(gè)以上不同的進(jìn)程或線程中,由于存在共同資源的競(jìng)爭(zhēng)或進(jìn)程(或線程)間的通訊而導(dǎo)致各個(gè)線程間相互掛起等待,如果沒(méi)有外力作用,最終會(huì)引發(fā)整個(gè)系統(tǒng)崩潰
    2022-12-12
  • clickhouse復(fù)雜時(shí)間格式的轉(zhuǎn)換方式

    clickhouse復(fù)雜時(shí)間格式的轉(zhuǎn)換方式

    這篇文章主要介紹了clickhouse復(fù)雜時(shí)間格式的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • MySQL?去除字符串中的括號(hào)以及括號(hào)里的所有內(nèi)容

    MySQL?去除字符串中的括號(hào)以及括號(hào)里的所有內(nèi)容

    這篇文章主要介紹了MySQL?去除字符串中的括號(hào)以及括號(hào)里的所有內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • MySQL通透詳解架構(gòu)設(shè)計(jì)

    MySQL通透詳解架構(gòu)設(shè)計(jì)

    這篇文章主要介紹了MySQL架構(gòu)設(shè)計(jì)相關(guān)基礎(chǔ)與原則,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2022-02-02
  • mysql/Java服務(wù)端對(duì)emoji的支持與問(wèn)題解決方法詳解

    mysql/Java服務(wù)端對(duì)emoji的支持與問(wèn)題解決方法詳解

    這篇文章主要介紹了mysql/Java服務(wù)端對(duì)emoji的支持與問(wèn)題解決方法,結(jié)合實(shí)例形式分析了mysql/Java服務(wù)端對(duì)emoji字符集存儲(chǔ)及支持問(wèn)題解決方法,需要的朋友可以參考下
    2019-10-10
  • MySQL阻塞與死鎖的解決

    MySQL阻塞與死鎖的解決

    本文主要介紹了MySQL阻塞與死鎖的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • 經(jīng)測(cè)試最好用的mysql密碼忘記的解決方法

    經(jīng)測(cè)試最好用的mysql密碼忘記的解決方法

    經(jīng)測(cè)試最好用的mysql密碼忘記的解決方法...
    2007-06-06

最新評(píng)論