如果转换表的存储引擎,将会丢失原存储引擎的所有特性。

例如:如果将innodb转换成myisam,再转回innodb,原innodb表的的外键将丢失。

假设默认存储引擎是MyISAM转为InnoDB

第一种:使用ALTER TABLE实现

mysql>ALTER TABLE table_name ENGINE=InnoDB;

适合任何存储引擎间的转换。需要执行很长时间。按行从数据将原表复制到一个新表,特别消耗系统I/O能力,并且原表会加上读锁。繁忙的表上慎用。

第二种:mysqldump导出与导入实现

mysql>mysqldump -uroot -p db_name tb_name > db_tb_name.sql;

修改db_tb_name.sql文件内engine为InnoDB和表名。注意去掉sql文件中的DROP TABLE命令,以免删除原表。

[root@localhost ~]#mysql -uroot -p db_name < db_tb_name.sql

第三种:创建与查询实现

mysql>create table db_innodb like db_myisam;
mysql>alter table db_innodb engine=innodb;
mysql>insert into db_innodb select * from db_myisam;

如果数据量很大可以再insert的时候分批导入,结合事务如下:

mysql>start transaction;
mysql>insert into db_innodb select * from db_myisam where id>0 limit 1000;
mysql>insert into db_innodb select * from db_myisam where id>1000 limit 1000;
mysql>insert into db_innodb select * from db_myisam where id>2000 limit 1000;
mysql>commit;

x表示起始id值。修改x值并重复执行以上语句即可。

mysql转换表的存储引擎方法的更多相关文章

  1. mysql修改表的存储引擎(myisam<=>innodb)【转】

    修改表的存储引擎myisam<=>innodb 查看表的存储引擎mysql> show create table tt7;+-------+--------------------- ...

  2. MySQL改变表的存储引擎

    MySQL提供了多种数据库存储引擎,存储引擎负责MySQL数据库中的数据的存储和提取.不同的存储引擎具有不同的特性,有时可能须要将一个已经存在的表的存储引擎转换成另外的一个存储引擎.有非常多方法能够完 ...

  3. MySQL更改表的存储引擎

    MySQL它提供了多种数据库存储引擎,存储引擎负责MySQL存储和检索数据的数据库.不同的存储引擎具有不同的特性,能须要将一个已经存在的表的存储引擎转换成另外的一个存储引擎.有非常多方法能够完毕这样的 ...

  4. mysql修改表的存储引擎(myisam<=>innodb)

    查看当前数据库的所支持的数据库引擎以及默认数据库引擎 mysql> show engines; +--------------------+---------+----------------- ...

  5. mysql 数据表操作 存储引擎介绍

    一 什么是存储引擎? 存储引擎就是表的类型. mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制 ...

  6. Mysql转换表存储引擎的三种方式

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

  7. MySQL 如何查看表的存储引擎

    MySQL 如何查看表的存储引擎   在MySQL中如何查看单个表的存储引擎? 如何查看整个数据库有那些表是某个特殊存储引擎,例如MyISAM存储引擎呢?下面简单的整理一下这方面的知识点. 如果要查看 ...

  8. mysql 库操作、存储引擎、表操作

    阅读目录 库操作 存储引擎 什么是存储引擎 mysql支持的存储引擎 如何使用存储引擎 表操作 创建表 查看表结构 修改表ALTER TABLE 复制表 删除表 数据类型 表完整性约束 回到顶部 一. ...

  9. MySQL更改数据库表的存储引擎

    MySQL更改数据库表的存储引擎 1.查看表的原存储引擎 show create table user; 'user', 'CREATE TABLE `user` (\n `id` int(11) N ...

随机推荐

  1. Django入门------常见问题

    项目启动后仅本机可访问 1.修改 Django项目中的settings.py中的 ALLOWED_HOSTS 的值为 ['*']# 准许那些地址访问,* 表示任意地址ALLOWED_HOSTS = [ ...

  2. LC 789. Escape The Ghosts

    You are playing a simplified Pacman game. You start at the point (0, 0), and your destination is(tar ...

  3. Struts 简单UI标签

    <!-- 服务器标签 : 最终别解析为html标签--> <s:form action="/user_login" method="post" ...

  4. 数据库开源框架之litepal

    主页: [https://github.com/LitePalFramework/LitePal](https://github.com/LitePalFramework/LitePal) 中文文档地 ...

  5. 01 numpy库(一)

    01-numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. NumPy 是一个运行 ...

  6. stegsolve---图片隐写查看器

    今天做CTF隐写术的题偶然发现一隐写图片查看的神器------stegsolve,分享给大家 stegsolve下载地址:http://www.caesum.com/handbook/Stegsolv ...

  7. (4)rapidxml的详解及使用

        RapidXml是指 XML DOM解析工具包,是一个快速的读写xml文件的库文件(hpp).     (1)创建XML文件 #include <iostream> #includ ...

  8. CommonJS、AMD、CMD、ES6——JavaScript模块化

    CommonJS规范:Node AMD规范:RequireJS CMD规范:SeaJS ES6模块

  9. Zemax评价函数经验小结

    2.4 风景透镜 为了说明一个简单的评价函数问题,我们演示一个真实风景透镜实例,这个风景镜有两个局部最优解,它大概是历史上第一个照相透镜,具有合理的大视场.它一开始是在一个成像暗箱(camera ob ...

  10. 刷新页面后,让控制台的js代码继续执行

    在各种限时,秒杀活动中,有个自动循环的点击的工具是很重要的. 为了方便起见,我们把Js代码放在浏览器的控制台执行,但是刷新页面后,js代码就清空了,也就无法执行. 可以用js代码实现一个不受页面刷新影 ...