MySQL怎么选择合适的存储引擎
以下內(nèi)容摘抄與《深入淺出mysql》
在選擇存儲(chǔ)引擎時(shí),應(yīng)根據(jù)應(yīng)用特點(diǎn)選擇合適的存儲(chǔ)引擎,對(duì)于復(fù)雜的應(yīng)用系統(tǒng)可以根 據(jù)實(shí)際情況選擇多種存儲(chǔ)引擎進(jìn)行組合。
下面是常用存儲(chǔ)引擎的適用環(huán)境。
- ?MyISAM:默認(rèn)的 MySQL 插件式存儲(chǔ)引擎。
如果應(yīng)用是以讀操作和插入操作為主,只有很少的更新和刪除操作,并且對(duì)事務(wù)的完整性、并發(fā)性要求不是很高,那么選擇這個(gè)存 儲(chǔ)引擎是非常適合的。MyISAM 是在 Web、數(shù)據(jù)倉(cāng)儲(chǔ)和其他應(yīng)用環(huán)境下最常使用的存儲(chǔ)引擎 之一。
- InnoDB:用于事務(wù)處理應(yīng)用程序,支持外鍵。
如果應(yīng)用對(duì)事務(wù)的完整性有比較高的 要求,在并發(fā)條件下要求數(shù)據(jù)的一致性,數(shù)據(jù)操作除了插入和查詢以外,還包括很多的更新、 刪除操作,那么 InnoDB 存儲(chǔ)引擎應(yīng)該是比較合適的選擇。InnoDB 存儲(chǔ)引擎除了有效地降低 由于刪除和更新導(dǎo)致的鎖定,還可以確保事務(wù)的完整提交(Commit)和回滾(Rollback), 對(duì)于類似計(jì)費(fèi)系統(tǒng)或者財(cái)務(wù)系統(tǒng)等對(duì)數(shù)據(jù)準(zhǔn)確性要求比較高的系統(tǒng),InnoDB 都是合適的選 擇。
- MEMORY:將所有數(shù)據(jù)保存在 RAM 中,在需要快速定位記錄和其他類似數(shù)據(jù)的環(huán)境 下,可提供極快的訪問。
MEMORY 的缺陷是對(duì)表的大小有限制,太大的表無法 CACHE 在內(nèi) 存中,其次是要確保表的數(shù)據(jù)可以恢復(fù),數(shù)據(jù)庫(kù)異常終止后表中的數(shù)據(jù)是可以恢復(fù)的。 MEMORY 表通常用于更新不太頻繁的小表,用以快速得到訪問結(jié)果。
- MERGE:用于將一系列等同的 MyISAM 表以邏輯方式組合在一起,并作為一個(gè)對(duì)象 引用它們。
MERGE 表的優(yōu)點(diǎn)在于可以突破對(duì)單個(gè) MyISAM 表大小的限制,并且通過將不同 的表分布在多個(gè)磁盤上,可以有效地改善MERGE表的訪問效率。這對(duì)于諸如數(shù)據(jù)倉(cāng)儲(chǔ)等VLDB 環(huán)境十分適合。
總結(jié)
以上是生活随笔為你收集整理的MySQL怎么选择合适的存储引擎的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL中using的用法
- 下一篇: MySQL优化之查询缓存(mysql8官