mysql存储引擎的方式_Mysql转换表存储引擎的三种方式
或许会有一些场景需要改变表的存储引擎,例如存储日志的表如果几乎只有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转换表存储引擎的三种方式相关推荐
- mysql 表中添加数据类型_MySQL数据表添加字段(三种方式)
MySQL 数据表是由行和列构成的,通常把表的"列"称为字段(Field),把表的"行"称为记录(Record).随着业务的变化,可能需要在已有的表中添加新的字 ...
- Excel中数据透视表数据源更新的三种方式
Excel中数据透视表数据源更新的三种方式 1.在原有的基础上重新选择数据源 2.变数据源为表格形式,在创建一个透视表,之后如果添加的数据,选中透视表右键刷新即可 3.利用更新过的数据源再重新创建一个 ...
- Action 中获取表单数据的三种方式
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53138905 冷血之心的博客) Action 中获取表单提交数据 ...
- 阻止路由跳转得方式_vue中路由跳转的三种方式 简洁易懂
router-view 实现路由内容的地方,引入组件时写到需要引入的地方 需要注意的是,使用vue-router控制路由则必须router-view作为容器. 通过路由跳转的三种方式 1.router ...
- 使用mysql创建外键约束_Mysql创建外键约束的两种方式
通过给mysql的表字段添加外键约束,可以有效的保持数据的一致性和完整性,数据就不会很容易出问题. 1.创建表时直接创建外键约束create table books( bookid number(10 ...
- oracle读取数据方式,关于oracle数据库读取数据的三种方式
打开oracle sqldeveloper,连接到HR模式下的数据库,在SQL工作表中,执行如下语句: CREATE TABLE WANG( Name varchar2(6), ID num ...
- MySQL数据库——MySQL数据表添加字段(三种方式)
MySQL 数据表是由行和列构成的,通常把表的"列"称为字段(Field),把表的"行"称为记录(Record).随着业务的变化,可能需要在已有的表中添加新的字 ...
- 如何把wma转换成mp3格式?三种方式任你使用
如何把wma转换成mp3格式?音频是记录.传播声音的关键途径之一,也是增强信息交流.情感表达的重要媒介之一.为了能够全面发挥出音频的重要作用,需要通过多样化的格式对其内容进行存储.传播.随着现代化技术 ...
- MySQL忽略主键冲突,避免重复插入数据的三种方式
方案一:ignore 插入时检索主键列表,如存在相同主键记录,不更改原纪录,只插入新的记录. INSERT IGNORE INTO ignore关键字所修饰的SQL语句执行后,在遇到主键冲突时会返回一 ...
最新文章
- ASP.Net中自定义Http处理及应用之HttpModule篇
- linux svn missingargument -m,缺少參數-m在windows powershell中使用svn。
- Devexpress 10.2.3 Demo 批量生成脚本
- 玩转动态编译 - 高级篇:一,IL访问静态属性和字段
- ADS下C语言中局部变量的存储位置分配
- ios动态获取UILabel的高度和宽度
- oracle lpad 字符集,oracle Lpad()函数和Rpad()函数的用法
- oracle 10g在redhat4.6上的安装
- JSON.parse和eval的区别
- 一次关于聚合根的激烈讨论
- Netlog的数据库及LAMP架构
- CSS动画翻转的效果
- 网络安全 (九 缓冲区溢出metasploit)
- WSO2 XMl转JSON
- longitudinal models | 纵向研究 | mixed model
- 利用Linux自带的logrotate管理日志
- 带你彻底击溃跳表原理及其Golang实现!(内含图解)
- SSM框架搭建简单实例
- Android使用百度地图sdk,实现微信发送位置功能
- HTML转义字符、Javascript转义字符、HTML特殊字符对照表
热门文章
- 使用windows activeX 在Webclient UI 中打开word文档
- how to get context node reference CN0X from view controller reference
- SAP gateway 后台系统的 OData service 服务探测机制实现原理
- SAP SuccessFactor学习中心的通知机制
- SAP Cloud for Customer和SAP CRM的行业解决方案列表
- java生成docx_用java新建一系列文件.docx
- docker添加jar包_docker配置容器运行jar包
- python linux 优化_Python 代码性能优化技巧
- find命令过滤 no such_运维老手常用的linux命令操作
- shell 连接 mysql_如何把mysql语句写在shell里,运行后仍然是一个与mysql数据库连接的状态?...