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

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

    一,用alter table来实现。

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

    转换方法很简单。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备份和导入,以及文件的备份和导入

  • 相关阅读:
    robotframework + python2.7.9 + selenium 2.44.0 + selenium2library1.7 测试环境搭建成功!
    SugarCRM安装踩雷(一)
    linux下安装xampp
    LoadRunner脚本回放与设置
    LoadRunner10自带的WEBTOURS,无法显示Flights页面问题解决办法
    重装系统后,重新搭建Selenium Server+Firefox环境
    LoadRunner 11中Record无法自动生成脚本——解决办法
    RFTWEB测试对象抓取的方法
    转载:如何使用RFT自动打开IE
    读《实战 GUI 产品的自动化测试》之:第四步,高阶技巧
  • 原文地址:https://www.cnblogs.com/moqiang02/p/4061443.html
Copyright © 2011-2022 走看看