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
- 查看修改后的表状态