MySQL的表类型由存储引擎(Storage Engines)决定,类型包括MyISAM、innoDB、BDB等。

常用的存储引擎

MySQL 数据表主要支持六种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB。

这六种又分为两类,一类是”事务安全型”(transaction-safe),包括BDB和InnoDB;其余都属于第二类,称为”非事务安全型”(non-transaction-safe)。

BDB全称是”Brekeley DB”,它是Mysql最早的具有事务能力的表的类型,由Sleepycat Software (http://www.sleepycat.com)开发。它提供了事务控制能力功能,它确保一组命令全部执行成功,或者当任何一个命令出现错误时所有命令的结果都被回退,可以想像在电子银行中事务控制能力是非常重要的。支持COMMIT、ROLLBACK和其他事务特性。最新版本的Mysql已经计划移除对BDB的支持,转而全力发展InnoDB。

InnoDB 是较新的事务安全型存储引擎,用于事务处理应用程序,支持BDB的几乎所有特性,并具有众多新特性,包括ACID事务支持。

特性:

事务处理机制

支持外链

崩溃后能立即恢复

支持外键功能,级联删除

支持并发能力

在硬盘上的存储方式:InnoBDB frm

最新版本的Mysql已经计划移除对BDB的支持,转而全力发展InnoDB。InnoDB对Mysql有更好的特性支持,而且开发社区活跃。

MyISAM 默认的MySQL插件式存储引擎,它是基于ISAM类型,但它增加了许多有用的扩展,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。

优点:

1.比ISAM表更小,所占资源更少

2.可以在不同平台间二进制移植表的类型在创建表时指定。

ISAM 是MyISAM类型出现之前MySQL表使用的默认类型,现在已经被MyISAM代替。

Memory (HEAP) 是MySQL表中访问最快的表,将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。注意,这种类型下数据是非持久化设计的,它一般适应于临时表,如果MySQL或者服务器崩溃,表中数据全部丢失。

Merge 是一种值得关注的新式表,它是由一组MyISAM表组成,之所合并主要出于性能上考虑,因为它能够提高搜索速度,提高修复效率,节省磁盘空 间。允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。有时它以 MRG_MYISAM 名称出现。

Archive 为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。

Federated 能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。

NDBCluster/Cluster/NDB MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。

CSV 使用标准的CSV格式,由逗号隔开的文本文件,适应于外部数据交换

Blackhole 它会接受数据但不保存,而且对任何检索请求返回一个空集。它一般适应于数据会被自动复制并不进行本地保存的分布式数据库设计。(不确定的)似乎也可以用于临时禁止/忽略对数据库的应用程序输入。

Example 这是一个测试引擎,你可以创建一个这样的表,但既不能写入数据,也不能检索数据。它似乎是一个针对MySql开发者提供的示例引擎。

有关操作和查看表类型的命令语法如下

--

-- 创建表时指定表类型的方法

CREATE TABLE `message` (

`id` int(11) NOT NULL auto_increment,

`sender` varchar(255) default NULL,

`receiver` varchar(255) default NULL,

`content` text,

`is_read` char(1) default 'N',

`send_time` datetime default NULL,

`del_flag` tinyint(4) default '0',

PRIMARY KEY (`id`)

) ENGINE=MYISAM;

-- 也可以创建后更改:

ALTER TABLE `message` ENGINE = INNODB;

-- 查看表类型(存储引擎)

SHOW TABLE STATUS FROM `test`;

-- -- 结果为数据库test中所有表的信息,其中第二项type即是表的类型。

-- 查看表类型(存储引擎)2

SHOW CREATE TABLE `message`;

-- -- 结果为表message创建时的信息,其中有TYPE或ENGINE一项,指定了表的类型(存储引擎)。

-- show tables不能得到表类型的信息。

注意:老版本的MySQL使用 TYPE而不是ENGINE(例如,TYPE = MYISAM)。MySQL 5.1为向下兼容而支持这个语法,但TYPE现在被轻视,而ENGINE 是首先的用法。 一般地,ENGINE选项是不必要的;除非默认已经被改变了,MyISAM是默认存储引擎。

数据表的可移植性

常用的数据移植方法:把数据表的内容导出到一个文本文件中,然后拷贝到硬盘上,然后导入目标数据库里面。

就文件层次的操作来说,某些数据表是可以直接单独拷贝表文件来移动的,见下表

ISAM

No

MyIASM

Yes

BDB

No

InnoBDB

Yes

查看数据库所有表

SHOW TABLE STATUS;

mysql 表的存储类型_MySQL的表类型和存储引擎相关推荐

  1. mysql 表的存储类型_MySQL数据表存储引擎类型及特性

    数据表类型(存储引擎) 常见引擎比对 特点 Myisam InnoDB Memory BDB Archive 存储限制 无穷制 64TB 有 没有 没有 事务安然 - 支撑 - 支撑 - 锁机制 表锁 ...

  2. mysql数据库表中的类型_MySQL数据库中表类型MyISAM与InnoDB的区别

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...

  3. 【无标题】mysql增加字段和备注_mysql 修改表名,修改字段类型,增加字段,删除字段,添加字段备注,添加索引...

    mysql语句: 1.修改表名: rename table 旧表名 to 新表名; 2.修改字段类型: alter table 表名 modify column 字段名 字段类型(长度) 3.修改字段 ...

  4. mysql 查询从库状态_Mysql库表状态查询

    1. 查看库的各链接状态 对于一个mysql连接或者一个线程,任何时刻都有一个状态,表示其当前正在做什么.一般使用show full processlist查看. +---------+------- ...

  5. mysql int 最大显示宽度_mysql int 整数类型 解释显示宽度 和 存储宽度

    存储宽度 是实际存储记录宽度 存储宽度默认是写死的,就算修改宽度也改变不了,改变的是显示宽度 ============有符号和无符号int============= 创建一个 无符号的 int 整数类 ...

  6. mysql表级别的操作_MySql 库/表级操作 及 数据类型 - 纪宇

    数据库分类 关系型数据库(SQL):存储方式固定,安全 非关系型数据库(NoSQL):存储方式比较灵活,存储数据的效率比较高,不太安全 MySQL是一种关系型数据库管理系统(采用关系模型来组织管理数据 ...

  7. 用mysql建销售订单主表_mysql订单表如何设计?

    mysql订单表如何设计? 商品表和订单表 . 通过一个表来关联. 那删除了商品,相关联的订单表如何显示出这个已经删除的商品? 订单表需要冗余商品名.商品编号.价格等基本信息. 不能只保存一个商品主键 ...

  8. mysql表中字段数据类型_mysql数据表中字段的数据类型有哪些?

    数据表中字段的数据类型有:TINYINT.SMALLINT.MEDIUMINT.INT.INTEGE.DATETIME.DATE.TIMESTAMP.TIME.YEAR.CHAR.VARCHAR.TE ...

  9. mysql表创建在哪_mysql创建表命令是哪句

    如何创建MySQL数据表?下面本篇文章给大家介绍通过命令提示符创建数据表的方法,希望对你们有所帮助. 创建MySQL数据表需要以下信息: ● 表名 ● 表字段名 ● 定义每个表字段 基本语法 以下为创 ...

  10. mysql编辑表php源码_MySQL修改表的实际应用代码示例

    以下的文章主要介绍的是MySQL修改表的实际操作命令,同时本文也有对MySQL修改表的实际操作代码的描述,如果你对其相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了. ALTER [IGNOR ...

最新文章

  1. 关于未来50年的工作与生活,三星联合未来学家们做出了这些预测
  2. 约瑟夫环形链表问题、丢手帕问题、剑指offer圆圈中最后一个数问题
  3. 崔希凡JavaWeb笔记day28(JavaWeb完毕)(期末,暂停更新)(2016年11月16日12:35:27)...
  4. Eclipse Collections随Java版本的演变
  5. 服务器虚拟化怎么使用,服务器使用中的误区及建议 服务器虚拟化安装步骤
  6. 利用python开发购物车系统
  7. 查询数据库前十条数据_入门数据分析的一些建议
  8. 蓝桥杯 反置数 数论
  9. 随笔:开学大四!!!稍微做点准备工作
  10. 用java来实现列出指定目录下的文件,子目录下的文件也要输出
  11. 2017,互联网出海应该注意哪些问题?
  12. HALCON 20.11:深度学习笔记(11)---目标检测
  13. session同步问题
  14. IDEA远程调试代码
  15. linux切换任务栏快捷键,ubuntu常用命令及快捷键整理
  16. removeNode is not defined removeNode is not a function
  17. bat 脚本的常用特殊符号
  18. linux 网站服务器优化 web server优化
  19. 如何在Google表格中直接使用Google翻译
  20. DS18B20读取温度

热门文章

  1. 【Kafka】01 生产者
  2. Dijkstra 路径规划 C#
  3. mybatis list条件判断
  4. CentOS下配置apache+gitweb
  5. 【.Net Framework 体积大?】不安装.net framework 也能运行!?原理补充-3
  6. 11-Container With Most Water
  7. Flash 应用:大智慧flash版本
  8. EXECUTE IMMEDIATE oracle介绍
  9. TSP(旅行者问题)——动态规划详解
  10. 如何根据相机的参数知道摄像机的内参数矩阵