目錄
存儲引擎分類
MYISAM
MySQL 5.5.5之前的默認存儲引擎。
- 支持大文件,通常認爲是256TB,一般來講沒有限制,但是受操作系統的影響;
- 適合讀多寫少的應用場景;
- 每個MYISAM表的最大索引數是64,可以通過編譯改變;
- BLOB和TEXT類型可以被索引;
- 支持全文索引;
- 僅支持表鎖,無論讀鎖,還是寫鎖;
- 非事務性引擎,不支持事務操作;
- .frm文件存儲表定義,.MYD數據文件,.MYI索引文件;
舉個栗子:
mysql> create table t2 (id int) engine = MYISAM;
Query OK, 0 rows affected (0.01 sec)
這個 engine 如果不寫,默認的是innodb。
InnoDB
目前MySQL的默認存儲引擎。
- 事務性引擎;
- 不僅支持表鎖,而且還支持行鎖和外鍵,對性能的影響要好的多;
- 爲巨大數據量的最大性能設計;
- .ibdata1自動擴展數據文件,ib_logfile0/1日誌文件;
MEMORY
- 將數據存儲到內存中的存儲引擎;
- 快;
- 不支持BLOB和TEXT列;
- 非事務性引擎;
- 內存,斷電丟失;
- 讀寫頻繁,Session值,操作ID;
NDB
- 用於MySQL Cluster的集羣存儲引擎;
- 提供數據層面上的高可用性;
- 多表查詢等複雜性查詢性能相對不是優勢,速度上差的很多和其他引擎比較;
- 尚在不斷完善中......