Mysql

將 MyISAM 轉換為 InnoDB

  • August 17, 2015

將 myisam 轉換為 innodb 時需要考慮哪些因素。

我有一張帶有 myisam 引擎的 80 GB 左右的桌子。我想轉換成innodb。轉換需要考慮哪些因素。

我正在使用 percona MySQL。我檢查了表格索引,上面的表格沒有全文搜尋索引。

我打算使用 percona 線上方案更改。

進行此活動時要記住哪些注意事項/先決條件?

  1. InnoDB 表往往比 MyISAM 表佔用更多空間。
  2. 轉換時,正在創建新的物理文件,因此您必須在磁碟上有可用空間(難以估計,但為了安全起見,我會說 120G)
  3. 如果您使用 Percona 工具線上進行更改,則對原始表的所有修改都將使用觸發器儲存在臨時表中。因此,根據 DML 操作,即插入/更新/刪除,您可能需要更多空間。請注意,在高流量表上,觸發器可能會影響性能。
  4. 可能應該調整一些與 InnoDB 相關的配置。

如果在您的設置中您有兩台或多台伺服器,例如主-主或主從,我認為最好離線進行,一次一台伺服器。

我有一個MyISAM2InnoDB 部落格,它徹底涵蓋了您的問題。

它討論了索引差異,特別是PRIMARY KEYFULLTEXT、空間(典型的是 2x-3x)、LOCK TABLES、減少key_buffer_size和增加innodb_buffer_pool_size(非常重要)等。

引用自:https://dba.stackexchange.com/questions/110917