介紹Mysql中存儲引擎和體系結構教程

Mysql的體系結構和存儲引擎 ?

1.1定義數據庫和實例 ? ?

數據庫:frm,MYD,MYI,ibd,結尾的文件,當使用NDB引擎的時候,數據庫文件放在內存中 ?
實例:后臺線程和共享內存組成。共享內存可以運行的后臺現成共享,數據庫實例才是真正操作數據庫的 ?
實例和數據庫的關系是一一對應的。 ?
MySql是單進程多線程架構的數據庫,實例在系統中的表現就是一個 進程。 ?
與Oracle的參數文件sp架構相似,不同Oracle如果沒有參數文件,在啟動實例的時候,數據庫失敗。?

1.2Mysql的組成: ?
連接池組件 ?
管理服務和工具組件 ?
sql接口組件 ?
查詢分析器組件 ?
優化組件 ?
緩沖Cache組件 ?
插件式存儲引擎 ?
物理文件 ?
存儲引擎是基于表結構的,而不是數據庫 ?

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

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

【相關推薦】

1.?架構

2.?架構

3. 架構

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享