簡體   English   中英

如何僅將共享相似前綴的表的存儲引擎從MyISAM更改為innoDB?

[英]How can I change the storage engine from MyISAM to innoDB only for tables sharing a similar prefix?

使用phpmyadmin我有幾個具有相同前綴的表。 我知道我可以一個表一個表地更改存儲引擎,但是由於某些表非常繁重,因此處理加載需要花費很多時間,並且有時會崩潰。

有沒有一種方法可以選擇多個表而不使用完整的表名,然后將所選表的存儲引擎從MyISAM更改為innoDB?

phpmyadmin有一個用於執行命令的窗口。 (更好的是,使用mysql命令行工具。)

步驟1:生成ALTERs

SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' ENGINE=InnoDB;')
   FROM information_schema.TABLES
   WHERE table_schema='test' AND ENGINE='MyISAM' AND TABLE_NAME LIKE 'rj%';
+-------------------------------------------------------+
| CONCAT('ALTER TABLE ', TABLE_NAME, ' ENGINE=InnoDB;') |
+-------------------------------------------------------+
| ALTER TABLE rj_article ENGINE=InnoDB;                 |
| ALTER TABLE rj_blobs ENGINE=InnoDB;                   |
| ALTER TABLE rj_bodies ENGINE=InnoDB;                  |
| ALTER TABLE rj_combos ENGINE=InnoDB;                  |
| ALTER TABLE rj_contents ENGINE=InnoDB;                |
| ALTER TABLE rj_current ENGINE=InnoDB;                 |

...

第2步:

通過復制來執行它們。 注意:由於phpmyadmin具有某種時間限制,因此可以提高該限制,或者切換到mysql命令行工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM