簡介
MySQL中的資料用各種不同的技術存儲在檔案(或者記憶體)中;
每一種技術都使用不同的存儲機制、索引技巧、鎖定水準并且最終提供廣泛的功能和能力;
這些不同的實作資料存儲的技術在MySQL的整體架構中邏輯化為“存儲引擎層”;
存儲引擎,通常又被稱作“表類型”(即可以在建立表時指定存儲引擎,但無法對某一資料庫指定存儲引擎)
檢視
可通過檢視表的狀态資訊獲得表所使用的存儲引擎類别:
修改預設存儲引擎:
各存儲引擎及其特性
InnoDB
MyISAM
ARCHIVE
CSV
1
2
<code>将資料存儲為csv格式,不支援索引</code>
<code>僅适用于資料交換場景</code>
BLACKHOLE
<code>沒有存儲機制,任何發往此引擎的資料都會丢棄</code>
<code>由于其會記錄二進制日志,故常用于多級複制架構中作中轉伺服器</code>
MEMORY
3
4
<code>資料儲存在記憶體中,即是一個記憶體表</code>
<code>僅支援</code><code>hash</code><code>索引,使用表級鎖</code>
<code>不支援blob和text資料類型</code>
<code>常用于儲存中間資料,如周期性的聚合資料等;也用于實作臨時表</code>
MRG_MYISAM
<code>是MyISAM的一個變種,能夠将多個MyISAM表合并為一個虛表</code>
<code>屬于傳統的存儲引擎,一般不常用</code>
NDB
<code>是MySQL Cluster中專用的存儲引擎,不常用</code>
第三方的存儲引擎
XtraDB
PBXT
TokuDB
列式存儲引擎:
Infobright
其它列式存儲引擎
開源社群存儲引擎:
Aria
Groona
OQGraph
SphinxSE
Spider
選擇存儲引擎可參考要素
是否需要事務
備份的類型的支援(熱備或冷備)
崩潰後的恢複
特有的特性(如對SSD的支援等)