或许会有一些场景需要改变表的存储引擎,例如存储日志的表如果几乎只有insert和少量的select操作,为了追求更好的插入性能有可能会需要把存储引擎更换为MyISAM。但是,本文不建议在同一个数据库中混合使用不同的存储引擎。

1.ALTER TABLE

将表从一个存储引擎修改为另一种存储引擎最简单的方式是执行DDL语句,下面语句将mytable的引擎有InnoDB改为MyISAM:

mysql>ALTER TABLE table_name ENGINE=MyISAM ;

执行效果如下图:

这种修改方法试用与任何存储引擎,但是需要注意的是:如果表的数据量很大,执行的时间会很长,Mysql会将原表的数据复制到一张新表中,在复制的期间可能会消耗完所有的系统I/O能力,同时会对原表上加读锁。同时更换存储引擎后的新表将丢失旧的存储引擎一切特性,例如InnoDB转换为MyISAM之后,所有的外键将丢失。

2.导出与导入

为了更好的控制转换过程,可以使用mysqldump工具将数据导出到文件,然后手动的修改文件CREATE TABLE 语句的存储引擎选项ENGINE,注意同时修改表名,因为同一个数据库中不能存在相同的表名,还要注意的是,mysqldump中会默认在CREATE TABLE 前加上DROP TABLE 语句,不注意这一点可能会导致数据丢失。

3.CREATE 和 SELECT

这种方式相对于前面两种高效和安全的特点。不需要导出整个表的数据,而是创建一张新的表,然后通过INSERT .....SELECT 语法来导入数据。

如果数据量不大的话,上面操作处理结果很令人满意。如果数据量很大,可以分批操作,针对每一段数据执行事务提交,避免大事务带来的问题,例如可以根据时间筛选或者根据id大小筛选分段提交。

START TRANSACTION;

INSERT INTO innodb_table SELECT * FROM mytable where id between x AND y (或者create_time之类);

COMMIT;

mysql存储引擎的方式_Mysql转换表存储引擎的三种方式相关推荐

  1. mysql 表中添加数据类型_MySQL数据表添加字段(三种方式)

    MySQL 数据表是由行和列构成的,通常把表的"列"称为字段(Field),把表的"行"称为记录(Record).随着业务的变化,可能需要在已有的表中添加新的字 ...

  2. Excel中数据透视表数据源更新的三种方式

    Excel中数据透视表数据源更新的三种方式 1.在原有的基础上重新选择数据源 2.变数据源为表格形式,在创建一个透视表,之后如果添加的数据,选中透视表右键刷新即可 3.利用更新过的数据源再重新创建一个 ...

  3. Action 中获取表单数据的三种方式

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53138905  冷血之心的博客) Action 中获取表单提交数据 ...

  4. 阻止路由跳转得方式_vue中路由跳转的三种方式 简洁易懂

    router-view 实现路由内容的地方,引入组件时写到需要引入的地方 需要注意的是,使用vue-router控制路由则必须router-view作为容器. 通过路由跳转的三种方式 1.router ...

  5. 使用mysql创建外键约束_Mysql创建外键约束的两种方式

    通过给mysql的表字段添加外键约束,可以有效的保持数据的一致性和完整性,数据就不会很容易出问题. 1.创建表时直接创建外键约束create table books( bookid number(10 ...

  6. oracle读取数据方式,关于oracle数据库读取数据的三种方式

    打开oracle sqldeveloper,连接到HR模式下的数据库,在SQL工作表中,执行如下语句: CREATE TABLE WANG( Name  varchar2(6), ID     num ...

  7. MySQL数据库——MySQL数据表添加字段(三种方式)

    MySQL 数据表是由行和列构成的,通常把表的"列"称为字段(Field),把表的"行"称为记录(Record).随着业务的变化,可能需要在已有的表中添加新的字 ...

  8. 如何把wma转换成mp3格式?三种方式任你使用

    如何把wma转换成mp3格式?音频是记录.传播声音的关键途径之一,也是增强信息交流.情感表达的重要媒介之一.为了能够全面发挥出音频的重要作用,需要通过多样化的格式对其内容进行存储.传播.随着现代化技术 ...

  9. MySQL忽略主键冲突,避免重复插入数据的三种方式

    方案一:ignore 插入时检索主键列表,如存在相同主键记录,不更改原纪录,只插入新的记录. INSERT IGNORE INTO ignore关键字所修饰的SQL语句执行后,在遇到主键冲突时会返回一 ...

最新文章

  1. Mac-sublime text 3破解版
  2. 企业如何提升管理能力,让企业协作更顺畅?
  3. java的三种代理模式
  4. Autoit 在word中绘图
  5. freeradius 3.0 mysql_secfree
  6. word2003如何设置护眼模式_ERP系统上线,如何设置采购收货的模式,提升企业的采购效率...
  7. mysql是bsd协议吗_freebsd下实现mysql的自动备份
  8. oracle 存储过程深入学习与应用
  9. 分页选择器v-selectpage的介绍
  10. SQLPrompt 注册失效方法
  11. JSON cannot be resolved 解决方法
  12. 【数字信号处理】--数字信号分析与处理基础知识
  13. 我要彻底搞懂SSD网络结构(2)特征提取网络
  14. java根据IP查询所在地址(百度地图)
  15. Java程序员从笨鸟到菜鸟之(五十七)细谈Hibernate(八)Hibernate集合Map关系映射
  16. text html叫什么意思,text是什么意思_text是什么意思
  17. 锦上添花之元音音标学习(下)
  18. Thinkphp6 搭建一套商城(拼团、秒杀、优惠券)
  19. chrome设置黑暗模式的4种方法
  20. 涨点神器!南航提出AFF:注意力特征融合,即插即用!可用于分类、检测和分割等...

热门文章

  1. Jerry的ABAP, Java和JavaScript乱炖
  2. 船体6自由度英文名称
  3. java+mysql性能优化_Java培训实战教程之mysql优化
  4. 儿童手工制作日历_德莎胶带手工制作实用且美观的巨幅挂历,让你未雨绸缪
  5. 指纹图谱相似度评价软件_基于指纹图谱和网络药理学对当归四逆汤中桂枝的Qmarker预测分析...
  6. 半正定矩阵的判定方法_线性代数30——正定矩阵和最小值
  7. git 删除已add的文件夹_如何删除还没有被add到git的文件(git clean的用法)
  8. python基础语法whike循环_python基础语法 - 循环
  9. linux树莓派连接wifi热点,如何将树莓派设置为WiFi热点
  10. java 打不开空客手册_空客A320AMM维护手册使用介绍.ppt