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

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