• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    mysql myisam转innodb的2种方法

      in  数据库      Tags: 

    mysql中的myisam和innodb有什么区别,在这儿就不哆嗦了。一个好比便利店,一个好比大型购物中心,他们是为了适应不同的场合而存在的。当流量比较小,我们可以用myisam,当流量大时,我们可能会把数据库中的,全部表或者部分表转换成innodb。下面说2种切实可行的方法来完成这种转换。

    一,用alter table来实现。

    mysql> alter table merchant type=innodb;
    Query OK, 2806 rows affected, 1 warning (0.33 sec)
    Records: 2806  Duplicates: 0  Warnings: 0

    转换方法很简单。myisam在磁盘上的储存有三个文件,.MYD,.MYI,.frm文件,转换后这三个文件会不会消失呢?innodb中共享表空间或者独立表空间会不增加呢?

    [root@krlcgcms01 test]# ls |grep merhcant|xargs -i du {}
    12       merchant.frm
    690       merchant.MYD
    144       merchant.MYI

    上面是转换前的文件大小,转换后.MYD,.MYI消失了。而innodb的共享表空间增加8M.

    [root@krlcgcms01 data]# ls |grep ibdata |xargs -i du -m {}
    10      ibdata1   //转换前的
    
    [root@krlcgcms01 data]# ls |grep ibdata |xargs -i du -m {}
    18      ibdata1   //转换后的

    mysql表在磁盘上的存储方式的转换,并不要额外的去转换。这样比较方便。innodb在这里我设置的是共享表空间,这次转换的表的大小不超过1M,但共享表空间自动增加了8M,所以共享表空间的大小,并不是按照表的大小来增加的,是有基数的。我们可以通过innodb_autoextend_increment来设置

    二,导出数据,重新建表

    1,导出表结构以及数据,删除老表,重新建表

    //方法1,我们可以把把创建这个表的sql拷贝出来,把ENGINE=MyISAM换成,ENGINE=INNODB
    mysql> show create table merchant\G;
    *************************** 1. row ***************************
     Table: merchant
    Create Table: CREATE TABLE `merchant` (
     `btid` int(5) unsigned zerofill NOT NULL auto_increment,
     `btname` varchar(100) NOT NULL,
     `btnote` text,
     PRIMARY KEY  (`btid`),
     UNIQUE KEY `btname` (`btname`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    1 row in set (0.00 sec)
    
    //方法2,直接导出表结构,在文件里面替换一个myisam
    Mysqldump -udba -p -d test merchant >/tmp/test/mytest/merchant.sql;

    2,导出数据

    Mysqldump -udba -p --no-create-info test merchant >/tmp/test/mytest/merchant_data.sql;

    3,删除老表,重新建表,导入数据,这个就不说了linux 简单的mysql备份和导入,以及文件的备份和导入



    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开