mysql存儲引擎簡析

1、常見存儲引擎特性

Innodb數據庫

    具備提交、回滾和崩潰恢復能力的事務安全、支持外鍵。使用mvcc以及行鎖來提供事務支持,所以支持高併發。適用於寫頻繁,併發率高的應用。安全

Myisam服務器

    不支持事務和災難自動恢復,但其訪問速度快,支持全文索引,對事務完整性沒有要求。 一般用於讀頻繁的數據庫,如數據倉庫等。併發

 

Memorymvc

使用存在內存中的內容來建立表,表訪問很是得快,由於它的數據是放在內存中的,而且默認使用HASH索引。可是一旦服務關閉,表中的數據就會丟失掉。 。適用於臨時的,須要頻繁讀寫,對性能速度要求嚴格的應用中,如一些統計操做的中間結果表高併發

 

 

2、選擇存儲引擎時須要考慮的因素

併發性能

若是最好的知足你的併發性需求取決你的工做量了。若是你僅僅是併發的插入和讀取。無論相信與否 ,MyISAM是最好的了。若是你讓這些操做互不干擾,就應該選擇一個支持行鎖的引擎。某些應用程序比其餘應用程序具備不少的顆粒級鎖定要求(如行級鎖定)。選擇正確的鎖定策略可以減小開銷,並有助於總體性能的提高。它還包括對多種能力的支持,如多版本併發性控制或「快照」讀取優化

 

事務支持:spa

並不是全部的應用程序都須要事務,但對的確須要事務的應用程序來講,有着定義良好的需求,如ACID兼容等。索引

 

備份

有規律的備份也影響表的引擎選擇。若是服務器關閉,而且按期的備份,存儲引擎很容易處理。若是 你須要在線備份並從一個格式轉換爲另外一個。這個選擇就不明智了。之後會詳細說這部分。

要考慮多引擎所引發的備份和服務器調整的複雜性。

錯誤恢復

若是你有不少數據,你要考慮錯誤恢復的時間。MyISAM相對於InnoDB很是容易崩潰並且從崩潰中恢復的時間很是慢,這就是爲何有的人即便不使用事務處理也要用InnoDB了。

特殊功能

最終,你可能發現有的應用須要依靠一些MySQL存儲引擎特殊的功能和優化,舉個例子,有的應用程序 很是依賴於集羣的索引優化。這時候,你只能在InnoDB和solidDB選擇了。另外一方面,只有MyISAM支持全 文索引。若是一個存儲引擎遇到了一個或多個苛刻的需求,對於其餘並不算是,那麼你就要選一個折中的 方案或者找到一個好的解決方案。一般你能從看上去不知足你的需求的存儲引擎,找到你所須要的。

相關文章
相關標籤/搜索