修改Mysql表存储引擎的三种方法

  • 通过命令直接修改表的存储引擎
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
  • 查看修改后的表状态
    这里写图片描述
    这里写图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值