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

例如:如果将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. Centos-Redhat下远程桌面的方法 & Redhat改Centos源

    折腾了好几天才搞定,Redhat下远程桌面的方法,首先保证本身已经装了桌面,并且可以ssh访问 由于系统中自带python2环境,装了anaconda以及它带的python3环境,这个必须存在(前提) ...

  2. AIDL 的工作原理

    当创建AIDL文件并Clean Project 代码后,会生成相应的Java文件: 先来一段伪代码:类整体结构 /* * This file is auto-generated. DO NOT MOD ...

  3. IntelliJ IDEA工具增加test测试方法,报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误

    是因为我在IntelliJ IDEA中,通过plugins增加 插件的时候,在 增加的测试类是junit4.12,改版本的jar包不再包含hamcrest-library.jar .我是通过将自己的项 ...

  4. MySql 时区错误

    mysql的时区错误问题: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one ...

  5. SprintBoot日志

    yml配置 #logging logging.file: "logs/app.log" logging: level: root: debug file: max-size: 10 ...

  6. IIS7 部署MVC 运行不了 注意事项

    经常安装完iis7或者7.5后,部署MVC3.运行后提示 403 找不到目录. 解决办法:需要重新注册下iis C:\Windows\Microsoft.NET\Framework64\v4.0.30 ...

  7. 设计模式--观察者模式--python

    观察者模式: 对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新. 主要解决: 当一个抽象模型有两个方面, 其中一个方面依赖于另一方面.将这二者封装在 ...

  8. Numpy中matrix()和array()的区别

    matrix() 和 array() 的区别,主要从以下方面说起: 1. 矩阵生成方式不同 import numpy as np a1 = np.array([[1, 2], [3, 4]]) b1 ...

  9. AutoResetEvent和ManualResetEvent(多线程操作)

    摘自风中灵药的博客:https://www.cnblogs.com/qingyun163/archive/2013/01/05/2846633.html#!comments AutoResetEven ...

  10. Redis在window上的安装

    1 Redis安装 Redis 没有官方的Windows版本,但是微软开源技术团队(Microsoft Open Tech group)开发和维护着这个 Win64 的版本. 在github上面可以下 ...