1. 程式人生 > >myisam 表 轉換為 innodb 表

myisam 表 轉換為 innodb 表

MySQL(或者社群開源fork的MariaDB)5.5以上支援InnoDB引擎,並將其作為預設資料庫引擎。InnoDB帶來很多改進,但是對系統資源佔用明顯增加,對於還在128MB~512MB記憶體VPS掛WordPress部落格的筒子們來說,InnoDB是不合適的,還是得換回MyISAM這批老馬!

本文講解從InnoDB引擎轉換成MyISAM引擎,看完本文,你應該懂得如何操作以把MyISAM引擎轉換成InnoDB引擎了(請確保InnoDB開啟,MySQL命令列下SHOW ENGINES命令檢視)。

進入MySQL命令列模式,然後執行以下指令(以資料庫wordpress為例):

1234USEwordpress;SHOW
TABLES;ALTERTABLEwp_commentmetaENGINE=MYISAM;ALTERTABLEwp_commentsENGINE=MYISAM;

SHOW TABLES可以顯示出wordpress下全部表的名字,接下來兩行將把wp_commentmeta和wp_comments這兩個錶轉換成MyISAM引擎,剩下的幾個表也請用同樣的方式轉換完畢。引擎轉換過程中將把資料庫鎖定,小的資料庫轉換很快,但是大資料庫轉換可能花費時間比較長,因此儘量選擇訪問低峰時間段進行。

轉換完畢後,可以把InnoDB引擎關閉並將MyISAM設為今後MySQL的預設引擎,編輯/etc/my.cnf檔案,在[mysqld]區段下加入下面兩行:

12default-storage-engine=MYISAMinnodb=OFF

儲存後重啟mysqld服務:

1sudo service mysqld restart

從InnoDB引擎轉換成MyISAM引擎,看完本文,你應該懂得如何操作以把MyISAM引擎轉換成InnoDB引擎了(請確保InnoDB開啟,MySQL命令列下SHOW ENGINES命令檢視)。


mysql> ALTER TABLE  boblog_history   ENGINE=InnoDB;
Query OK, 2808 rows affected (0.76 sec)
Records: 2808  Duplicates: 0  Warnings: 0


ALTER TABLE  boblog_blogs     ENGINE=InnoDB;
ALTER TABLE  boblog_calendar  ENGINE=InnoDB;
ALTER TABLE  boblog_categoriesENGINE=InnoDB;
ALTER TABLE  boblog_counter   ENGINE=InnoDB;
ALTER TABLE  boblog_forbidden ENGINE=InnoDB;
ALTER TABLE  boblog_history   ENGINE=InnoDB;
ALTER TABLE  boblog_linkgroup ENGINE=InnoDB;
ALTER TABLE  boblog_links     ENGINE=InnoDB;
ALTER TABLE  boblog_maxrec    ENGINE=InnoDB;
ALTER TABLE  boblog_messages  ENGINE=InnoDB;
ALTER TABLE  boblog_mods      ENGINE=InnoDB;
ALTER TABLE  boblog_pages     ENGINE=InnoDB;
ALTER TABLE  boblog_plugins   ENGINE=InnoDB;
ALTER TABLE  boblog_replies   ENGINE=InnoDB;
ALTER TABLE  boblog_tags      ENGINE=InnoDB;
ALTER TABLE  boblog_upload    ENGINE=InnoDB;
ALTER TABLE  boblog_user      ENGINE=InnoDB;

來自:https://www.librehat.com/mysql-engine-innodb-and-myisam-convert/