zoukankan      html  css  js  c++  java
  • mysql myisam转innodb的2种方法

    mysql myisam转innodb的2种方法

     

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

    一,用alter table来实现。

    1. mysql> alter table merchant engine=innodb; 

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

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

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

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

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

    二,导出数据,重新建表

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

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

    2,导出数据

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

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

  • 相关阅读:
    HDU 2544 最短路
    HDU 3367 Pseudoforest
    USACO 2001 OPEN
    HDU 3371 Connect the Cities
    HDU 1301 Jungle Roads
    HDU 1879 继续畅通工程
    HDU 1233 还是畅通工程
    HDU 1162 Eddy's picture
    HDU 5745 La Vie en rose
    HDU 5744 Keep On Movin
  • 原文地址:https://www.cnblogs.com/yycc/p/7514545.html
Copyright © 2011-2022 走看看