1.1 Mysql儲存引擎概述
Mysql支援多種儲存引擎,在處理不同類型的應用時,可以通過選擇不同的儲存引擎提高應用的效率,或者提供靈活的儲存。
包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV等,其中InnoDB、BDB提供安全事務表,其他引擎都是非事務安全表。
1.2 各種儲存引擎的特性
特點 |
Myisam |
BDB |
Memory |
InnoDB |
Archive |
儲存限制 |
沒有 |
沒有 |
有 |
64TB |
沒有 |
事務安全 |
|
支援 |
|
支援 |
|
鎖機制 |
表鎖 |
頁鎖 |
表鎖 |
行鎖 |
行鎖 |
B樹索引 |
支援 |
支援 |
支援 |
支援 |
|
雜湊索引 |
|
|
支援 |
支援 |
|
全文索引 |
支援 |
|
|
|
|
叢集索引 |
|
|
|
支援 |
|
資料緩衝 |
|
|
|
支援 |
|
索引緩衝 |
|
|
支援 |
支援 |
|
資料可壓縮 |
支援 |
|
|
|
支援 |
空間使用 |
低 |
低 |
不消耗空間 |
高 |
低 |
記憶體使用量 |
低 |
低 |
中等 |
高 |
非常高 |
批量插入速度 |
高 |
高 |
高 |
低 |
非常高 |
支援外鍵 |
|
|
|
支援 |
|
最常用的儲存引擎:
1.
Myisam儲存引擎:每個Myisam在磁碟上儲存成三個檔案。檔案名稱都和表名相同,副檔名分別為.frm(儲存表定義)、.MYD(儲存資料)、.MYI(儲存索引)。資料檔案和索引檔案可以放置在不同目錄,平均分布io,獲得更快的速度。
2.
InnoDB儲存引擎:具有提交、復原、奔潰恢複能力的事務安全。與Myisam相比,InnoDB的寫效率差一些並且會佔用更多的磁碟空間以保留資料和索引。
1.3
如何選擇合適的引擎
下面是常用儲存引擎適用的環境:
1.
Myisam:它是在Web、資料倉儲和其他應用環境下最常使用的儲存引擎。
2.
InnoDB:用於交易處理應用程式,具有更多特性,包括ACID事務特性。
3.
Memory:所有資料都儲存在Ram中,在需要快速尋找引用和其他類似資料環境下,可以極速訪問。
4.
Merge:允許Mysql DBA(資料庫管理人)或開發人員將一系列等同的MyISAM表以邏輯方式組合在一起,並作為1個對象引用他們。對於世界倉儲等環境十分合適。