15、如何选择MySQL存储引擎
本節將介紹如何根據不同的應用場景去選擇合適的存儲引擎。
在使用 MySQL 數據庫管理系統時,選擇一個合適的存儲引擎是一個非常復雜的問題。不同的存儲引擎都有各自的特性、優勢和使用的場合,正確的選擇存儲引擎可以提高應用的使用效率。
為了能夠正確地選擇存儲引擎,必須掌握各種存儲引擎的特性。下面重點介紹幾種常用的存儲引擎,它們對各種特性的支持如下表所示。
表中主要介紹了 MyISAM、InnoDB 和 MEMORY 三種存儲引擎特性的對比。下面詳細介紹這 3 個存儲引擎的應用場合并給出相應的建議。
1) MyISAM(少量更新和刪除)
在 MySQL 5.1 版本及之前的版本,MyISAM 是默認的存儲引擎。
MyISAM 存儲引擎不支持事務和外鍵,所以訪問速度比較快。
如果應用主要以讀取和寫入為主,只有少量的更新和刪除操作,并且對事務的完整性、并發性要求不是很高,那么選擇 MyISAM 存儲引擎是非常適合的。
MyISAM 是在 Web 數據倉儲和其他應用環境下最常使用的存儲引擎之一。
2) InnoDB(事務)
MySQL 5.5 版本之后默認的事務型引擎修改為 InnoDB。
InnoDB 存儲引擎在事務上具有優勢,即支持具有提交、回滾和崩潰恢復能力的事務安裝,所以比 MyISAM 存儲引擎占用更多的磁盤空間。
如果應用對事務的完整性有比較高的要求,在并發條件下要求數據的一致性,數據操作除了插入和查詢以外,還包括很多的更新、刪除操作,那么 InnoDB 存儲引擎是比較合適的選擇。
InnoDB 存儲引擎除了可以有效地降低由于刪除和更新導致的鎖定,還可以確保事務的完整提交(Commit)和回滾(Rollback),對于類似計費系統或者財務系統等對數據準確性要求比較高的系統,InnoDB 都是合適的選擇。
3) MEMORY(快速訪問)
MEMORY 存儲引擎將所有數據保存在 RAM 中,所以該存儲引擎的數據訪問速度快,但是安全上沒有保障。
MEMORY 對表的大小有限制,太大的表無法緩存在內存中。由于使用 MEMORY 存儲引擎沒有安全保障,所以要確保數據庫異常終止后表中的數據可以恢復。
如果應用中涉及數據比較少,且需要進行快速訪問,則適合使用 MEMORY 存儲引擎。
總結
不同應用的特點是千差萬別的,選擇適應存儲引擎才是最佳方案也不是絕對的,這需要根據實際應用進行測試,從而得到最適合的結果。
總結
以上是生活随笔為你收集整理的15、如何选择MySQL存储引擎的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 14、查看和修改默认存储引擎
- 下一篇: 16、修改数据表的存储引擎