明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

說明Mysql中存儲引擎與體系結(jié)構(gòu)圖文說明教程

[摘要]Mysql的體系結(jié)構(gòu)和存儲引擎 1.1定義數(shù)據(jù)庫和實例 數(shù)據(jù)庫:frm,MYD,MYI,ibd,結(jié)尾的文件,當(dāng)使用NDB引擎的時候,數(shù)據(jù)庫文件放在內(nèi)存中 實例:后臺線程和共享內(nèi)存組成。共享內(nèi)存可以運行的后臺現(xiàn)成共享,數(shù)據(jù)庫實例才是真正操作數(shù)據(jù)庫的 實例和數(shù)據(jù)庫的關(guān)系是一一對應(yīng)的。 MySql...
Mysql的體系結(jié)構(gòu)和存儲引擎


1.1定義數(shù)據(jù)庫和實例

數(shù)據(jù)庫:frm,MYD,MYI,ibd,結(jié)尾的文件,當(dāng)使用NDB引擎的時候,數(shù)據(jù)庫文件放在內(nèi)存中
實例:后臺線程和共享內(nèi)存組成。共享內(nèi)存可以運行的后臺現(xiàn)成共享,數(shù)據(jù)庫實例才是真正操作數(shù)據(jù)庫的
實例和數(shù)據(jù)庫的關(guān)系是一一對應(yīng)的。
MySql是單進(jìn)程多線程架構(gòu)的數(shù)據(jù)庫,實例在系統(tǒng)中的表現(xiàn)就是一個 進(jìn)程。
與Oracle的參數(shù)文件spfile相似,不同Oracle如果沒有參數(shù)文件,在啟動實例的時候,數(shù)據(jù)庫失敗。


1.2Mysql的組成:
連接池組件
管理服務(wù)和工具組件
sql接口組件
查詢分析器組件
優(yōu)化組件
緩沖Cache組件
插件式存儲引擎
物理文件
存儲引擎是基于表結(jié)構(gòu)的,而不是數(shù)據(jù)庫


1.3Mysql存儲引擎
Mysql預(yù)定義的存儲引擎接口編寫自己的存儲引擎
InnoDB存儲引擎
支持事物,設(shè)計目標(biāo)主要是面向在線事物處理的應(yīng)用,特點是行鎖設(shè)計,支持外鍵,支持類似Oracle的非鎖定讀,默認(rèn)讀寫操作不會產(chǎn)生鎖
放在了一個邏輯表空間中,存儲引擎的表單獨放到一個獨立的ibd文件之中
對于表中的存儲,采取了聚集的方式
MyISAM存儲引擎
不支持事物,表所設(shè)計,支持全文索引。面向一些OLAP數(shù)據(jù)庫應(yīng)用
緩沖池只是緩存一些索引文件,不緩沖數(shù)據(jù)文件
引擎表是由MYD和MYI組成,MYD是用來存放數(shù)據(jù)文件,MYI用來存放索引文件,可以使用myismpack工具來進(jìn)一步壓縮文件
NDB引擎
是一個集群存儲引擎,其結(jié)構(gòu)是share noting的集群結(jié)構(gòu),數(shù)據(jù)全部放在內(nèi)存中,主鍵查找的速度極快
并且通過添加NDB數(shù)據(jù)存儲節(jié)點,線性提高數(shù)據(jù)庫性能,高可用,高性能的集群系統(tǒng)。
Memory引擎
表中的數(shù)據(jù)存放到內(nèi)存之中,如果數(shù)據(jù)庫重啟或者崩潰,表中的數(shù)據(jù)全部消失。適用于存儲臨時表
默認(rèn)使用哈希索引,不是B+樹索引。
只支持表鎖,并發(fā)性能比較差
Archeive存儲引擎
采用zlib算法進(jìn)行壓縮后存儲。非常適合存儲過當(dāng)數(shù)據(jù),如日志信息
使用行鎖來實現(xiàn)高并發(fā)的插入操作
主要提供高速的插入和壓縮功能。
Federate存儲引擎
引擎表并不存放數(shù)據(jù),只是指向一臺mysql數(shù)據(jù)庫的服務(wù)器上,不支持異構(gòu)數(shù)據(jù)庫的表
Maria存儲引擎
取代原有的MyiSAM存儲引擎,從而成為Mysql的默認(rèn)引擎
支持緩存數(shù)據(jù)和索引文件,應(yīng)用了行鎖設(shè)計,提供了MVCC功能,支持事物和非事物安全的選項
通過show engines 查詢mysql數(shù)據(jù)庫所支持的存儲引擎


1.4連接Mysq
是一個連接進(jìn)程和Mysql數(shù)據(jù)庫實例進(jìn)行通信
常用的通信方式:有管道,命名管道,命名字,TCP/IP套接字,UNIX域套接字
TCPIP:
mysql -h192.168.0.0.1 -u david -p
Mysql會檢查一張權(quán)限視圖,用來判斷請求的ip是否允許連接到Mysql實例,表為user
命名管道和共享內(nèi)存
在mysql配置文件中啟動--enable>name-pipe
提供共享內(nèi)存,在配置文件中,添加--shard-Memory實現(xiàn)
UNIX套接字
mysql -udavid -S /tmp/mysql.sock

【相關(guān)推薦】

1. 免費mysql在線視頻教程

2. MySQL最新手冊教程

3. 數(shù)據(jù)庫設(shè)計那些事

以上就是介紹Mysql中存儲引擎和體系結(jié)構(gòu)教程的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。