在實際工作中,選擇一個合適的存儲引擎是一個很複雜的問題。每種存儲引擎都有各自的優勢,不能籠統的說誰好誰不好。原諒我說了一句廢話。
OK,現在我們將對各個存儲引擎的特點進行對比,給出不同情況下選擇存儲引擎的建議。
首先呢,我們來從存儲引擎的事務安全,存儲限制,空間使用,內存使用,插入數據的速度和對外鍵的支持這幾個角度來做一個比較。
關於上表的解釋:
1,InnoDB存儲引擎:InnoDB存儲引擎支持事務處理,支持外鍵。同時支持奔潰修復能力和併發控制。
如果需要對事務的完整性要求比較高,要求實現併發控制,那選擇InnoDB存儲引擎有很大的優勢。
如果需要頻繁的進行更新,刪除操作的數據庫,也可以選擇InnoDB存儲引擎。因爲該類存儲引擎可以實現事務的提交和回滾。
2,MyISAM存儲引擎:MyISAM存儲引擎的插入數據快,空間和內存使用比較低。
如果表主要是用於插入新記錄和讀出記錄,那麼選擇MyISAM存儲引擎能實現處理的高效率。
如果應用的完整性,併發性要求很低,也可以選擇MyISAM存儲引擎。
3,Memory存儲引擎:Memory存儲引擎的所有數據都在內存中,數據的處理速度非常快,但安全性不高。
如果需要很快的讀寫速度,對數據的安全性要求較低,可以選擇Memory存儲引擎。
Memory存儲引擎對錶的大小有要求,不能建立太大的表。所以,這類數據庫值使用與相對較小的數據庫表。
這裏再來整理一個小的技巧:
1,如果一個表要求較高的事務處理,可以選擇InnoDB。
2,這個數據庫中可以將查詢要求比較高的表選擇MyISAM存儲引擎。
3,如果需要該數據庫中一個用於查詢的臨時表,可以選擇Memory存儲引擎。