一、常見存儲(chǔ)引擎特性
Innodb
????具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全、支持外鍵。使用 mvcc 以及行鎖來提供事務(wù)支持,因此支持高并發(fā)。適用于寫頻繁,并發(fā)率高的應(yīng)用。
Myisam
????不支持事務(wù)和災(zāi)難自動(dòng)恢復(fù),但其訪問速度快,支持全文索引,對(duì)事務(wù)完整性沒有要求。?通常用于讀頻繁的數(shù)據(jù)庫,如數(shù)據(jù)倉庫等。
?
Memory
使用存在內(nèi)存中的內(nèi)容來創(chuàng)建表,表訪問非常得快,因?yàn)樗臄?shù)據(jù)是放在內(nèi)存中的,并且默認(rèn)使用 HASH 索引。但是一旦服務(wù)關(guān)閉,表中的數(shù)據(jù)就會(huì)丟失掉。? 。適用于臨時(shí)的,需要頻繁讀寫,對(duì)性能速度要求嚴(yán)格的應(yīng)用中,如一些統(tǒng)計(jì)操作的中間結(jié)果表
?
?
二、選擇存儲(chǔ)引擎時(shí)需要考慮的因素
并發(fā)
如果最好的滿足你的并發(fā)性需求取決你的工作量了。如果你僅僅是并發(fā)的插入和讀取。不管相信與否?,MyISAM是最好的了。如果你讓這些操作互不干擾,就應(yīng)該選擇一個(gè)支持行鎖的引擎。某些應(yīng)用程序比其他應(yīng)用程序具有很多的顆粒級(jí)鎖定要求(如行級(jí)鎖定)。選擇正確的鎖定策略能夠減少開銷,并有助于整體性能的提升。它還包括對(duì)多種能力的支持,如多版本并發(fā)性控制或“快照”讀取
?
事務(wù)支持:
并非所有的應(yīng)用程序都需要事務(wù),但對(duì)的確需要事務(wù)的應(yīng)用程序來說,有著定義良好的需求,如ACID兼容等。
?
備份
有規(guī)律的備份也影響表的引擎選擇。如果服務(wù)器關(guān)閉,并且定期的備份,存儲(chǔ)引擎很容易處理。如果?你需要在線備份并從一個(gè)格式轉(zhuǎn)換為另一個(gè)。這個(gè)選擇就不明智了。以后會(huì)詳細(xì)說這部分。
要考慮多引擎所引起的備份和服務(wù)器調(diào)整的復(fù)雜性。
錯(cuò)誤恢復(fù)
如果你有很多數(shù)據(jù),你要考慮錯(cuò)誤恢復(fù)的時(shí)間。MyISAM相對(duì)于InnoDB非常容易崩潰而且從崩潰中恢復(fù)的時(shí)間非常慢,這就是為什么有的人即使不使用事務(wù)處理也要用InnoDB了。
特殊功能
最終,你可能發(fā)現(xiàn)有的應(yīng)用需要依靠一些MySQL存儲(chǔ)引擎特殊的功能和優(yōu)化,舉個(gè)例子,有的應(yīng)用程序?非常依賴于集群的索引優(yōu)化。這時(shí)候,你只能在InnoDB和solidDB選擇了。另一方面,只有MyISAM支持全?文索引。如果一個(gè)存儲(chǔ)引擎遇到了一個(gè)或多個(gè)苛刻的需求,對(duì)于其他并不算是,那么你就要選一個(gè)折中的?方案或者找到一個(gè)好的解決方案。通常你能從看上去不滿足你的需求的存儲(chǔ)引擎,找到你所需要的。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
