MySQL数据表支持六种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB,
这六种又分为两类,单独一类是BDB,称为"事务安全型"(transaction-safe),
其余都属于第二类,称为“非事务安全型"(non-transaction-safe)。下面详细介绍这些表:
事务安全型
BDB 全称是"Brekeley DB",它是Mysql具有事务能力的表的类型,由Sleepycat Software (http://www.sleepycat.com)开发。它提供了事务控制能力功能,它确保一组命令全部执行成功,或者当任何一个命令出现错误时所有命令的结果都被回退,可以想像在电子银行中事务控制能力是非常重要的。
非事务安全型
HEAP
HEAP表是MySQL表中访问最快的表,主要是由于这类表使用保存期在内存中的散列索引,但必须注意的是,如果MySQL或者服务器崩溃,表中数据全部丢失。
ISAM
ISAM表是MyISAM类型出现之前,MySQL表使用的默认类型,建议改用MyISAM。
MEREG
MEREG是一种值得关注的新式表,它是由一组MyISAM表组成,之所合并主要出于性能上考虑,因为它能够提高搜索速度,提高修复效率,节省磁盘空间。
MyISAM
MyISAM是MySQL表默认的类型,它是基于ISAM类型,但它增加了许多有用的扩展,下面是MyISAM一些优点:
1.比ISAM表更小,所占资源更少
2.可以在不同平台间二进制移植
表的类型在创建表时指定。在下面这个例子中我们创建了一个HEAP类型的表:
CODE
InnoBDB
这是最近加入的新表,具有以下特性:
事务处理机制
崩溃后能立即恢复
支持外键功能,级联删除
支持并发能力
在硬盘上的存储方式:InnoBDB frm
数据表的可移植性
通用方法:把数据表的内容导出到一个文本文件中,然后拷贝到硬盘上,导入数据库里面。就文件层次的操作来说,某些数据表是可以单独拷贝的看表
ISAM No
MyIASM Yes
BDB No
InnoBDB Yes
//======================================================================================
1.数据文件
1)MyISAM表:有三个相关的文件,数据文件.MYD,索引文件.MYI,目标文件(定义文件).frm
2)BDB表:包含两个文件,一个.db数据文件和一个.frm目标文件
3)InnoDB表:有自己的目标文件.frm,但实际的数据存放在上一级目录中,与数据库属于同一级目录
2.日志文件
MySQL实际上支持五种不同的表类型.这五种类型分别是BDB、HEAP、ISAM、MERGE以及MyISAM。
1,ISAM数据表
mysql3.23版本之前的MySQL支特的唯一一种表类型,目前己经过时,MyIASM处理程库逐步取代了ISAM处理程序,这种老式的表类型己经没有人在用了
数据表在硬盘上的文件存储方式:IASM Frm isd ism
2,MyIASM数据表
这是目前中MySQL默认使用的数据表类型。其优点是
如果主机操作系统支持大尺寸文件,数据表长度就能够很大,就能客纳更多的数据.
数据表内容独立于硬件也就是说可以把数据表在机器之间随意拷贝
提高了索引方面的功能
提供了更好的索引键压缩效果
auto_incremnet能力加强
改进了对数据表的完整性检查机制
支持进行fulltext全文本搜索
数据表在硬盘上的文件存储方式:MyISAM Frm myd myi
3,Merge数据表
这是一种把相同结构的MyIASM数据表组织为一个逻辑单元的方法
数据表在硬盘上的文件存储方式:Merge Frm mrg
4,HEAP数据表
这是一种使用内存的数据表,而且各个数据行的长度固定,这两个特性使得这种类型数据表的检索速度非常快,作为一种临时性的数据表,HEAP在某些特定情况下很有用。
数据表在硬盘上的文件存储方式:Heap Frm
5,BDB数据表
这种数据表支持事务处理机制,具有良好的并发性能
数据表在硬盘上的文件存储方式:BDB Frm db
6,InnoDB数据表
这是最近加入MySQL的数据表类型,有许多新的特性
支持事务处理机制
崩溃后能够立刻恢复
支持外键功能,包括级联删除
具有并发功能
数据表在硬盘上的文件存储方式:InnoDB frm