修改Mysql表儲存引擎的三種方法
阿新 • • 發佈:2019-02-19
- 通過命令直接修改表的儲存引擎
alter table mytest ENGINE = MyIsam;
- 會導致大量的
IO
問題,不建議使用;儲存引擎的轉換會導致原有表的特性消失,例如外來鍵等; - 使用匯入匯出表,來實現
- 首先需要修改的表的資料匯出
- 然後修改關於表儲存引擎的選項
22 DROP TABLE IF EXISTS `mytest`; //在進行恢復的過程中,如果不修改原來表的名字原來的表就回被刪除; 23 /*!40101 SET @saved_cs_client = @@character_set_client */; 24 /*!40101 SET character_set_client = utf8 */; 25 CREATE TABLE `mytest` ( 26 `id` int(11) DEFAULT NULL, 27 `name` varchar(30) DEFAULT NULL 28 ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 29 /*!40101 SET character_set_client = @saved_cs_client */;
- 這是一個指令碼,可以通過
Mysql
命令直接執行; - 現在的儲存引擎是
MyISAM
- 如果不需要原來的表,可以執行這個指令碼
root@westos:~# mysql -uroot -p < /mnt/userInfo.mytest.sql -A userInfo
Enter password:
- 連線資料庫,查看錶的狀態
- 資料仍然存在
- 第三種方式,是通過建立新表,然後重新寫入資料的方式來進行
mysql> create table myisam_mytest like mytest; Query OK, 0 rows affected (0.08 sec) mysql> alter table myisam_mytest engine=Myisam; Query OK, 0 rows affected (0.07 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> insert into myisam_mytest select * from mytest; Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0
- 檢視修改後的表狀態