MySQL它提供了多种数据库存储引擎,存储引擎负责MySQL存储和检索数据的数据库。不同的存储引擎具有不同的特性,能须要将一个已经存在的表的存储引擎转换成另外的一个存储引擎。有非常多方法能够完毕这样的转换,每一种方法都会有优缺点。应当依据实际情况去选择。以下讲述三种转换MySQL表引擎的方法:

ALTER TABLE
转换MySQL表引擎最简单的方法是直接使用ALTER TABLE去改动表的定义。以下的这条语句将mytable表引擎转换成InnoDB
mysql>ALTER TABLE mytable ENGINE = InnoDB;
长处:简单、能够使用于不论什么的表引擎。
缺点:须要运行非常长时间。转换的过程是先定义一个新的引擎表,然后把原表中的数据复制过来。在复制的过程中会消耗系统大量的I/O能力,同一时候还会在原表上加上读锁。所以,在一个非常繁忙的系统中使用这样的转换方式是行不通的,纵然这非常easy。
另外,须要注意的是,假设使用这样的方式转换表引擎会失去和原表引擎相关的特性。比如,将一张InnoDB表转换成MyISAM表,然后再转换成InnoDB表。纵然你什么都没有做。可是原表中的外键将会消失。


导入和导出
为了更好的控制转换的过程,能够是使用mysqldump工具将数据导出到文件,然后改动文件里的CREATE TABLE语句的ENGINE选项,注意改动表名,由于一个数据库中不可能有两个同名的表。即时它们使用不同的存储引擎。
SHELL>
mysqldump   -u   username   -p   数据库名   表名 > 文件名称
vi改动文件里的CREATE TABLE语句
mysql> source 带路径文件名称


创建与查询
第三种方式结合了第一种高效和另外一种方式安全。

不须要导出整个表的数据。而是先创建一个新的存储引擎表,然后利用INSERT....SELECT语法来到数据。

mysql>
CREATE TABLE innodb_table LIKE myisam_table ;
mysql>
ALTER TABLE innodb_table ENGINE = InnoDB ;
mysql>
INSERT INTO innodb_table SELECT * FROM myisam_table;

MySQL更改表的存储引擎的更多相关文章

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

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

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

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

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

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

  4. MySQL改变表的存储引擎

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

  5. mysql转换表的存储引擎方法

    如果转换表的存储引擎,将会丢失原存储引擎的所有特性. 例如:如果将innodb转换成myisam,再转回innodb,原innodb表的的外键将丢失. 假设默认存储引擎是MyISAM转为InnoDB ...

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

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

  7. mysql 开发基础系列8 表的存储引擎

    一. 表的存储引擎 1. 概述 插件式存储引擎是mysql数据库最重要的特性之一, 用户可以根据应用的需要选择如何存储和索引数据,是否使用事务等.在mysql 5.0里支持的引擎包括: MyISAM, ...

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

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

  9. Mysql表类型(存储引擎)的比较

    面试官问:你知道mysql有哪些存储引擎,区别是啥? 我:一脸闷逼,于是乎下来补一补,以作备查 1.和大多数数据库不同,MySQL 中有一个存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎. ...

随机推荐

  1. 一次修复IncrediBuild Coordinator服务的经历

    作者:朱金灿 来源:http://blog.csdn.net/clever101 早上发现部门的分布式编译服务的服务端崩溃了,原来是IncrediBuild Coordinator服务启动不了.启动该 ...

  2. putty-gns3

    hcl-cloud用的就是这个putty http://forum.gns3.net/topic5016.html File comment: Compiled PuTTY 0.62 for wind ...

  3. Android应用开发按下返回键退向后台执行

    转载请注明来源:http://blog.csdn.net/kjunchen/article/details/50429694 Android应用开发按下返回键退向后台执行 我们日常使用的非常多Andr ...

  4. android 之修改图片的某一颜色值

    首先我们来创建一个叫Image的类,这个类主要用来处理与图有关的一些操作. package org.cn.tools; import java.io.IOException; import java. ...

  5. js进阶 11-13 jquery如何包裹元素和去除元素外的包裹

    js进阶 11-13  jquery如何包裹元素和去除元素外的包裹 一.总结 一句话总结:wrap().wrapAll().unwrap().innerWrap()四个方法 1.jquery中unwr ...

  6. IT忍者神龟之Hibernat持久化对象-数据表映射配置回想

    1.持久化对象POJO编写规则: 1) 有空參public构造器: 2) 提供标识属性.映射数据表主键: 3) 属性提供setter和getter方法. 4) 属性使用基本数据类型的包装类型.基本类型 ...

  7. innodb_data_file_path参数误修改解决方法

    如果innodb_data_file_path参数被修改乱了,不知道原来值的大小,这样启动是会报错的.知道原来大小方法: 方法一:操作系统下ls -l看到原来大小,直接用ls -l显示的大小,复制即可 ...

  8. UITextView的一些事1

    TextView如果只是作为展示文本时,要设置如下属性: //不可编辑(是否弹出键盘) TextView_label.editable=NO; //不可选择(长按不会出现复制.粘贴) TextView ...

  9. ORACLE中死锁

    ORACLE中死锁的知识点总结   死锁的概念 什么是死锁呢? 其实我们生活中也有很多类似死锁的例子. 我先举一个生活中的例子:过年回家,父亲买了一把水弹枪,儿子和侄子争抢着要先玩,谁也不让谁,拆开包 ...

  10. cordova 生成发行版apk,并添加证书 – 畅玩Coding

    原文:cordova 生成发行版apk,并添加证书 – 畅玩Coding 首先jdk生成证书. 1.进入jdk安装目录 D:\Java\jdk1.7.0\bin 2.执行命令 keytool -gen ...