MySQL體系結(jié)構(gòu)和存儲(chǔ)引擎概述

責(zé)任編輯:ycao

2018-04-23 20:33:59

摘自:網(wǎng)頁設(shè)計(jì)輕松學(xué)

MySQL數(shù)據(jù)庫(kù)由后臺(tái)進(jìn)程以及一個(gè)共享內(nèi)存區(qū)組成。共享內(nèi)存可以被運(yùn)行的后臺(tái)線程所共享。 需要注意的是,數(shù)據(jù)庫(kù)實(shí)例才是真正用于操作數(shù)據(jù)庫(kù)文件的。

一、定義數(shù)據(jù)庫(kù)和實(shí)例

數(shù)據(jù)庫(kù):

物理操作系統(tǒng)文件或其他形式文件類型的集合。數(shù)據(jù)庫(kù)文件可以是frm、MYD、ibd 結(jié)尾的文件。

從概念上來說,數(shù)據(jù)庫(kù)是文件的集合,是依照某種數(shù)據(jù)模型組織起來并存放于二級(jí)存儲(chǔ)器的數(shù)據(jù)集合;

實(shí)例:

MySQL數(shù)據(jù)庫(kù)由后臺(tái)進(jìn)程以及一個(gè)共享內(nèi)存區(qū)組成。共享內(nèi)存可以被運(yùn)行的后臺(tái)線程所共享。 需要注意的是,數(shù)據(jù)庫(kù)實(shí)例才是真正用于操作數(shù)據(jù)庫(kù)文件的。

從概念上來說,數(shù)據(jù)庫(kù)實(shí)例是程序,是位于用戶于操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,用戶對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的任何操作,包括數(shù)據(jù)庫(kù)定義、數(shù)據(jù)查詢等都在實(shí)例下進(jìn)行,應(yīng)用程序只有通過數(shù)據(jù)庫(kù)實(shí)例才能和數(shù)據(jù)庫(kù)打交道。

PS:MySQL是一個(gè)單進(jìn)程多線程架構(gòu)的數(shù)據(jù)庫(kù)。也就是說MySQL數(shù)據(jù)庫(kù)實(shí)例在系統(tǒng)中表現(xiàn)形式就是一個(gè)進(jìn)程。

二、MySQL體系結(jié)構(gòu)

根據(jù)上圖可以看出,MySQL由以下幾個(gè)部分組成:

1. 連接池組建

2. 管理服務(wù)和工具組建

3. SQL接口組件(SQL Interface)

4. 查詢分析器(Parser)

5. 優(yōu)化器組件(Optimizer)

6. 緩沖組件(Cache & Buffer)

7. 插件式存儲(chǔ)引擎(Pluggable Storage Engines)

8. 物理文件 (File Sysgtem & Logs)

三、MySQL存儲(chǔ)引擎

MySQL與其他數(shù)據(jù)庫(kù)對(duì)比等一大特點(diǎn)就是獨(dú)有的插件式體系結(jié)構(gòu),而每存儲(chǔ)引擎都有各自的特點(diǎn),能夠根據(jù)具體的業(yè)務(wù)或者應(yīng)用場(chǎng)景建立不同的存儲(chǔ)引擎表。

下面簡(jiǎn)單的介紹以下MySQL幾款常見的存儲(chǔ)引擎:

1、InnoDB存儲(chǔ)引擎:

InnoDB存儲(chǔ)引擎支持事務(wù),設(shè)計(jì)目標(biāo)主要面向OLTP應(yīng)用,特點(diǎn)是行鎖設(shè)計(jì)、支持外鍵。PS:MySQL5.6+開始支持全文索引。

2、MyISAM存儲(chǔ)引擎:

MyISAM存儲(chǔ)引擎不支持事務(wù)、表鎖設(shè)計(jì),支持全文索引,主要面向一些OLAP數(shù)據(jù)庫(kù)應(yīng)用。

3、NDB存儲(chǔ)引擎:

NDB存儲(chǔ)引擎是一款集群存儲(chǔ)引擎,特點(diǎn)是將數(shù)據(jù)全部放在內(nèi)存中(MySQL5.1+開始可以將非索引數(shù)據(jù)放在磁盤上)因此主鍵查找的數(shù)據(jù)快,通過添加數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),可以線性的提高數(shù)據(jù)庫(kù)性能,是高可用,高性能的集群系統(tǒng)。

4、Memory存儲(chǔ)引擎:

Memory存儲(chǔ)引擎將表中所有的數(shù)據(jù)放置內(nèi)存中,如果數(shù)據(jù)庫(kù)重啟或者崩潰,數(shù)據(jù)將消失。Memory所有默認(rèn)使用哈希索引。

5、Archive存儲(chǔ)引擎:

只支持insert 和 select操作, 使用zlib算法將數(shù)據(jù)行(row)壓縮存儲(chǔ)。 非常適合存儲(chǔ)歸檔數(shù)據(jù),如日志信息。

6、Federated

7、Maria

……

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)