|
阅读:2131回复:12
追踪一下MySql的表类型及其用法:)
MySQL 实际上支持五种不同的表类型,有些人可能会对此感到不同寻常。这五种类型分别是BDB、HEAP、ISAM、MERGE以及MyISAM。其中BDB类型单独属于一类,称为“事务安全型”(transaction-safe),其余的表类型属于第二类,称为“非事务安全型”(non- transaction-safe)。下面我们详细介绍这些表类型。
事务安全型 ▲ BDB BDB全称是“Berkeley DB”,它是MySQL具有事务能力的表类型,由Sleepycat Software (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_overview.html了解完整说明以及要使用BDB表应该做哪些准备。 MySql5.0中增加了数据库的高级功能,比如视图,触发器,存储过程。。。我们期待着这个东西一天比一天好。 [ 2006-06-20 15:34:25 lijiannan_1981 修改 ] |
|
|
|
1C#
发布于:2006-06-20 16:25
Re:追踪一下MySql的表类型及其用法:)
InoDB呢?。。。 |
|
|
|
2C#
发布于:2006-06-20 18:42
Re:追踪一下MySql的表类型及其用法:)
InoDB呢?。。。 本人还米搞清楚呢:))) [ 2006-06-21 12:49:16 lijiannan_1981 修改 ] |
|
|
|
4C#
发布于:2006-06-20 22:29
Re:追踪一下MySql的表类型及其用法:)
楼长就最后一句抒情是自己的。
转也转个新鲜的啊,明显是老黄历了。一个两千年的屁,不如不放。 |
|
|
|
5C#
发布于:2006-06-20 22:35
Re:追踪一下MySql的表类型及其用法:)
上当了,楼长故意只放了一半。。缺德。。http://www.wowobbs.com/bbs/dispbbs.asp?boardid=51&id=16488
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_overview.html了解完整说明以及要使用BDB表应该做哪些准备。 MySQL 4.0将增加两种新的表类型,即InnoDB和Gemeni。关于这两种表类型现在能够得到的信息还不多。 关于MySQL表类型,有待学习的知识实在太多,本文简短的介绍不可能做到完整和详尽。建议访问MySQL文档(http://www.mysql.com/)了解更详尽的信息。 接下来我们要讨论的是数据库性能优化的另一方面,即运用数据库服务器内建的工具辅助性能分析和优化。 |
|
|
|
6C#
发布于:2006-06-21 01:02
Re:追踪一下MySql的表类型及其用法:)
BDB不好用 |
|
|
|
7C#
发布于:2006-06-21 08:31
Re:追踪一下MySql的表类型及其用法:)
BDB不好用 BDB是一种轻量级的数据库吧,SVN用的就是,咋不好用了,说来听听? [ 2006-06-21 08:53:12 lijiannan_1981 修改 ] |
|
|
|
8C#
发布于:2006-06-21 12:01
Re:追踪一下MySql的表类型及其用法:)
BDB是一种非关系型的嵌入式数据库,操作起来比较麻烦,至少我是不太习惯,基本上是只会关系型数据库
建议楼主自己去试试bdb的操作api,就知道多麻烦了, 顺便说一下,它不支持sql~~ |
|
|
|
9C#
发布于:2006-06-21 12:06
Re:追踪一下MySql的表类型及其用法:)
楼上的,下来。 |
|
|
|
10C#
发布于:2006-06-21 12:55
Re:追踪一下MySql的表类型及其用法:)
[em062]0000[em062]绕指柔
[ 2006-06-21 12:50:30 lijiannan_1981 修改 ] |
|
|
|
11C#
发布于:2006-07-12 00:47
Re:追踪一下MySql的表类型及其用法:)
0000绕指柔[ 2006-06-21 12:50:30 lijiannan_1981 修改 ] 断臂乎? |
|
|
|
12C#
发布于:2006-08-16 22:37
Re:追踪一下MySql的表类型及其用法:)
今天 高兴 我就顶~ |
|
|