Chinaunix首页 | 论坛 | 博客
  • 博客访问: 261131
  • 博文数量: 93
  • 博客积分: 3001
  • 博客等级: 中校
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-11 13:20
文章分类

全部博文(93)

文章存档

2011年(1)

2009年(92)

我的朋友

分类: Mysql/postgreSQL

2009-07-11 14:09:55

MySQL数据表支持六种类型 ,分别是:BDBHEAPISAMMERGEMYISAMInnoBDB,这六种又分为两类,单独一类是BDB,称为"事务安全型"(transaction-safe),其余都属于第二类,称为“非事务安全型"(non-transaction-safe)。下面详细介绍这些表:

 

事务安全型

BDB 全称是"Brekeley DB",它是Mysql具有事务能力的表的类型,由Sleepycat Software )开发。它提供了事务控制能力功能,它确保一组命令全部执行成功,或者当任何一个命令出现错误时所有命令的结果都被回退,可以想像在电子银行中事务控制能力是非常重要的。

 

非事务安全型

HEAP

HEAP表是MySQL表中访问最快的表,主要是由于这类表使用保存期在内存中的散列索引,但必须注意的是,如果MySQL或者服务器崩溃,表中数据全部丢失。

ISAM

ISAM表是MyISAM类型出现之前,MySQL表使用的默认类型,建议改用MyISAM

MEREG

MEREG是一种值得关注的新式表,它是由一组MyISAM表组成,之所合并主要出于性能上考虑,因为它能够提高搜索速度,提高修复效率,节省磁盘空间。

MyISAM

MyISAMMySQL表默认的类型,它是基于ISAM类型,但它增加了许多有用的扩展,下面是MyISAM一些优点:

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

2.可以在不同平台间二进制移植

表的类型在创建表时指定。在下面这个例子中我们创建了一个HEAP类型的表:

CODE

 

InnoBDB

这是最近加入的新表,具有以下特性:

事务处理机制

崩溃后能立即恢复

支持外键功能,级联删除

支持并发能力

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

 

数据表的可移植性

通用方法:把数据表的内容导出到一个文本文件中,然后拷贝到硬盘上,导入数据库里面。就文件层次的操作来说,某些数据表是可以单独拷贝的看表

ISAM No

MyIASM Yes

BDB No

InnoBDB Yes

 

 

MyISAM表类型是一种比较成熟稳定的表类型,但是MyISAM对一些功能不支持。

 

 MyISAM

 InnoDB

事务

 不支持

 支持

数据行锁定

 不支持,只有表锁定

 支持

外键约束

 不支持 

 支持

表空间大小

 相对小

相对大,最大是2 

全文索引

支持 

不支持 

GIS数据 

支持 

不支持 

COUNT问题 

 

执行COUNT(*)查询时,速度慢 

 

  一般情况下我觉得选择MyISAM就行,如果需要事务,或者需要很多用户同时修改某个数据表里的数据时,可以考虑InnoDB数据表。

 

阅读(563) | 评论(0) | 转发(0) |
0

上一篇:RPM包安装Mysql

下一篇:字段类型

给主人留下些什么吧!~~