首頁  >  文章  >  資料庫  >  介紹Mysql中儲存引擎和體系結構教程

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

零下一度
零下一度原創
2017-05-12 11:03:26967瀏覽

Mysql的體系結構與儲存引擎


1.1定義資料庫與實例   

資料庫:frm,MYD,MYI,ibd,結尾的文件,當使用NDB引擎的時候,資料庫檔案放在記憶體中  
實例:後台執行緒和共享記憶體組成。共享記憶體可以運作的後台現成共享,資料庫執行個體才是真正操作資料庫的  
實例和資料庫的關係是一一對應的。  
MySql是單一進程多執行緒架構的資料庫,實例在系統中的表現就是一個 進程。  
與Oracle的參數文件spfile相似,不同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. 免費mysql線上影片教學

2. MySQL最新手冊教學

#

3. 資料庫設計那些事

以上是介紹Mysql中儲存引擎和體系結構教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn