登录注册
上海交通大学论坛 > 数据库 > 浏览当前帖子 手机版 关闭左侧栏
MYSQL表的类型
返回本版】  【发表帖子】  【回复帖子 浏览量  4208      回帖数 0
xiaoshamao    等级  

楼主 发表于  2011/8/9 2:24:23    编 辑   


MySQL实际上支持五种不同的表类型,有些人可能会对此感到不同寻常。这五种类型分 
别是BDB、HEAP、ISAM、MERGE以及MyISAM。其中BDB类型单独属于一类,称为“事务安全 
型”(transaction-safe),其余的表类型属于第二类,称为“非事务安全型”(non- 
transaction-safe)。下面我们详细介绍这些表类型。 
   事务安全型 
   ▲ BDB 
   BDB全称是“Berkeley DB”,它是MySQL具有事务能力的表类型,由Sleepycat  
So 
ftware  
(http://www.sleepycat.com)开发。BDB表类型提供了MySQL用户长久期盼的功 
能,即事务控制能力。在任何RDBMS中,事务控制能力都是一种极其重要和宝贵的功能。 
事务控制能力使得我们能够确保一组命令确实已经全部执行成功,或者确保当任何一个 
命令出现错误时所有命令的执行结果均被回退。可以想象,在电子银行这类应用中事务 
控制能力是极其重要的。 
   非事务安全型 
   ▲ HEAP 
    
HEAP表是访问数据速度最快的MySQL表,这是因为这类表使用保存在内存中的散列 
索引。但有极其重要的一点必须注意,如果MySQL或者服务器崩溃,HEAP表中的数据将会 
丢失! 
   ▲ ISAM 
    
ISAM表类型是MyISAM出现之前MySQL的默认表类型,所以现在这种表类型是不推荐 
使用的,建议改用MyISAM表。 
   ▲ MERGE 
    
MERGE是一种值得关注的新式表类型,在3.23.25版中提供。MERGE表实际上由一组 
同样的MyISAM表合并而成。之所以要把多个同样的表合并成一个,主要是出于性能上的 
考虑,因为它能够提高搜索速度、提高修复效率、节省磁盘空间。 
   当前的MERGE表类型仍旧属于BETA版本,但相信正式版本很快就会出现。 
   ▲ MyISAM 
    
MyISAM表类型是MySQL默认的表类型。MyISAM表类型以ISAM为基础,但增加了许多 
有用的扩展。下面是部分用MyISAM表类型取代ISAM表类型的原因: 
MyISAM表比ISAM表要小,因而占用资源更少。 
MyISAM表在不同的平台间二进制可移植。 
    
MyISAM还有□□许多优点。请访问http://www.mysql.com/doc/I/S/ISAM.html查看 
关于该表类型的完整说明。 
   表的类型在创建表时指定。在下面这个例子中我们创建了一个HEAP类型的表: 
mysql >CREATE TABLE email_addresses TYPE=HEAP ( 
  - >email char(55) NOT NULL, 
  - >name char(30) NOT NULL, 
  - >PRIMARY KEY(email) ); 
    
创建BDB表需要更多的配置参数,请参考http://www.mysql.com/doc/B/D/BDB_ove 
rview.html了解完整说明以及要使用BDB表应该做哪些准备。 
   MySQL  
4.0将增加两种新的表类型,即Innobase和Gemeni。关于这两种表类型现在 
能够得到的信息还不多。 
1
表情
所有内容均为会员自愿发表,并不代表本站立场.
论坛帮助 会员认证删帖申请 联系我们