表轉換存儲引擎的方法總結
注意:存儲引擎修改之後,原始存儲引擎的專有特性都會丟失。
例如,如果將一個InnoDB轉換成MyISAM存儲引擎,再轉回來,那麼最初在原InnoDB定義的外鍵都會丟失。
www.2cto.com
方法-1、ALTER TABLE
[sql]
mysql> ALTER TABLE mytable ENGINE = InnoDB;
把表從一種存儲引擎換成另一種存儲引擎最簡單的方法就是ALTER TABLE命令。
特點:
a、適合所有存儲引擎。
b、轉換過程會耗費大量時間。
c、轉換時候源表會被讀加鎖。
方法-2、轉儲(Dump)和導入(Import)
使用mysqldump工具導出數據表,修改轉儲文件的CREATE TALBE 語句。
修改點:
a、刪除轉儲文件裡的DROP TALBE語句,防止數據轉儲失敗時,源數據也丟失。
www.2cto.com
b、修改表名,數據庫絕對不允許相同的表名出現,即使存儲引擎不同。
c、修改存儲引擎。
方法-3、CREATE和SELECT
在方法-1的速度和方法-2的安全性之間做了一個平衡。先創建一張表,然後用mysql的INSERT....SELECT語句來轉移數據。
[sql]
mysql>CREATE TABLE innodb_table LIKE myisam_table;
mysql>ALTER TABLE innodb_table ENGINE=InnoDB;
mysql>INSERT INTO innodb_table SELECT * FROM myisam_table;