<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      MySQL怎么選擇合適的引擎以及進行引擎的轉換

      [摘要]我們怎么選擇合適的引擎?這里簡單歸納一句話:“除非需要用到某些InnoDB不具備的特性,并且沒有其他辦法可以替代,否則都應該優先選擇InnoDB引擎! 除非萬不得已,否則不建議混合使用多種存儲...
      我們怎么選擇合適的引擎?這里簡單歸納一句話:“除非需要用到某些InnoDB不具備的特性,并且沒有其他辦法可以替代,否則都應該優先選擇InnoDB引擎。

      除非萬不得已,否則不建議混合使用多種存儲引擎,否則可能帶來一系列復雜的問題以及一些潛在的BUG。

      使用不同引擎考慮的幾大因素:

      1.事務

      如果需要事務支持,那么InnoDB或者XtraDB目前最穩定。如果不需要事務且主要是SELECT和INSERT操作,MyISAM是不錯的選擇。

      2.備份

      如果需要在線熱備份,InnoDB是基本的選擇。

      3.崩潰恢復

      數據量比較大的時候,系統崩潰后如何快速恢復是一個需要考慮的問題,這也是許多人即使不需要事務支持也選擇InnoDB的原因。

      轉換表的引擎:

      1.ALTER TABLE

      最簡單的方法就是ALTER TABLE語句:

       mysql> ALTER TABLE mytable ENGINE = InnoDB;

      這個語法適用于任何存儲引擎,但是需要執行很長的時間。

      轉換表的存儲引擎,將會失去和原引擎相關的所有特性。

      2.導出與導入

      可以使用mysqldump工具將數據導出到文件,然后修改文件中CREATE TABLE語句的存儲引擎,請注意修改表名。

      同時請注意mysqldump工具默認會自動在CREATE TABLE語句前加上DROP TABLE語句,小心數據丟失。

      3.創建與查詢

      綜合第一種與第二種,先創建一個新的存儲引擎表,然后利用INSTER ... SELECT語法來導數據

               mysql> CREATE TABLE innodb_table LIKE myisam_table;
             mysql>ALTER TABLE innodb_table ENGINE=InnoDB;
             mysql>INSTER INTO innodb_table SELECT * FROM myisam_table;

      數據量大的話可以分批處理,針對每一段數據執行事務提交操作,避免大事務產生的undo。Percona Toolkit提供了一個pt-online-schema-change的工具,可以簡單,方便的執行避免手工操作導致的失誤。

      以上就是MySQL如何選擇合適的引擎以及進行引擎的轉換 的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清