MySQL常用的七种表类型
Mysql提供的表类型截止到今天已经有13种,各有各的好处,常用的有七种,如果再细化出来,基本上就只有两种:InnoDB、MyIASM两种。
Mysql作为当前最为流行的免费数据库服务引擎,已经风靡了很长一段时间,不过也有人对于Mysql的内部环境不是很了解,尤其那些针对并发性处理的机制。
Mysql向用户提供了包括DBD、HEAP、ISAM、MERGE、MyIAS、InnoDB以及Gemeni这七种Mysql表类型。其中DBD、InnoDB属于事务安全类表,而其他属于事务非安全类表。
1、DBD
Berkeley DB(DBD)表是支持事务处理的表,由Sleepycat软件公司开发。它提供MySQL用户期待已久的功能–事务控制。事务控制在任何数据库系统中都是一个极有价值的功能,因为它们确保一组命令能成功地执行或回滚。
BerkeleyDB表(TYPE=BDB)是为了满足MySQL开发者对事务安全表日益增长的需求而发展起来的。BerkeleyDB表具有特性,包括提交和回滚操作、多用户并发访问、检查点、次要索引、通过日志恢复崩溃、连续地和键控地访问数据等,这便利复杂的、基于事务的SQL有了可行的选择。
不过BerkeleyDB表也有一些限制:
它的移动比较困难(在创建时,表路径硬编码在表文件中)
不能压缩表索引,而且其表通常比MyISAM相应的表要大
有点鸡肋的感觉,因为现在InnoDB格式很大程度上可以取代BerkeleyDB格式
2、HEAP
HEAP表是MySQL中存取数据最快的表。这是因为他们使用存储在动态内存中的一个散列索引,不过如果MySQL或服务器崩溃,这些内存数据将会