/ 中存储网

MySQL数据表类型及文件结构介绍

2014-07-13 15:57:26 来源:中存储网

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.日志文件
   出错日志:在目录C:Program FilesMySQLMySQL Server 5.0data下, .err文件

 

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