Mysql
將 MyISAM 轉換為 InnoDB
將 myisam 轉換為 innodb 時需要考慮哪些因素。
我有一張帶有 myisam 引擎的 80 GB 左右的桌子。我想轉換成innodb。轉換需要考慮哪些因素。
我正在使用 percona MySQL。我檢查了表格索引,上面的表格沒有全文搜尋索引。
我打算使用 percona 線上方案更改。
進行此活動時要記住哪些注意事項/先決條件?
- InnoDB 表往往比 MyISAM 表佔用更多空間。
- 轉換時,正在創建新的物理文件,因此您必須在磁碟上有可用空間(難以估計,但為了安全起見,我會說 120G)
- 如果您使用 Percona 工具線上進行更改,則對原始表的所有修改都將使用觸發器儲存在臨時表中。因此,根據 DML 操作,即插入/更新/刪除,您可能需要更多空間。請注意,在高流量表上,觸發器可能會影響性能。
- 可能應該調整一些與 InnoDB 相關的配置。
如果在您的設置中您有兩台或多台伺服器,例如主-主或主從,我認為最好離線進行,一次一台伺服器。
我有一個MyISAM2InnoDB 部落格,它徹底涵蓋了您的問題。
它討論了索引差異,特別是
PRIMARY KEY
和FULLTEXT
、空間(典型的是 2x-3x)、LOCK TABLES
、減少key_buffer_size
和增加innodb_buffer_pool_size
(非常重要)等。