MySQL数据表类型

MySQL一共向用户提供了包括DBD、HEAP、ISAM、MERGE、MyIASM、InnoDB以及Gemeni这7种Mysql表类型。其中DBD、InnoDB属于事务安全类表,而其余属于事务非安全类表。sql

①   Berkeley DB(DBD)表是支持事务处理的表,由Sleepycat软件公司开发。它提供MySQL用户期待已久的功能--事务控制。事务控制在任何数据库系统中都是一个极有价值的功能,由于它们确保一组命令能成功地执行或回滚。 数据库

②   HEAP表是MySQL中存取数据最快的表。这是由于他们使用存储在动态内存中的一个散列索引,不过若是MySQL或服务器崩溃,这些内存数据将会丢失。安全

③   ISAM表是早期MySQL版本的缺省表类型,直到MyIASM开发出来。建议不要再使用它。  服务器

④   MERGE是一个有趣的新类型,在3.23.25以后出现。一个MERGE表其实是又一个MyISAM表的集合,合并而成的一个表,主要是为了效率的考虑,由于这样不只仅能够提升速度、搜索效率、修复效率并且还节省了磁盘空间。并发

⑤   MyIASM基于了IASM代码,应该能够说是IASM的衍生品,不过增长了很多有用的扩展。它是MySQL的默认数据表类型,基于了传统的ISAM类型,ISAM是Indexed Sequential Access Method(有索引的顺序访问方法)的缩写,通常来讲,它是存储记录和文件的标准方法。与其余存储引擎比较,MyISAM具备检查和修复表格的大多数工具。ISAM表格能够被压缩,并且它们支持全文搜索,不过它们是事务不安全的,并且也不支持外键。若是事务回滚将会形成不彻底回滚,从而不具有原子性。因此假如忽略事务以及访问并发性的话,而且须要执行大量的SELECT检索语句的话,MyISAM将是最好的选择。  工具

⑥   InnoDB是MySQL 4.0以后推出的一种比较新的数据表类型,这种类型是事务安全的。它与BDB类型具备相同的特性,它们还支持外键。InnoDB表格速度很快具备比BDB还丰富的特性,所以若是须要一个事务安全的存储引擎,建议使用它。若是你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,一样应该使用InnoDB表。对于支持事务的InnoDB类型的表来讲,影响速度的主要缘由是AUTOCOMMIT默认设置是打开的,并且程序没有显式调用BEGIN 开始事务,致使每插入一条都自动提交,严重影响了速度。能够在执行sql前调用begin,多条sql造成一个事物(即便autocommit打开也能够),将大大提升性能。 性能

⑦   Gemeni表,据据说也是在MySQL 4.0以后推出的,不过截至当前,不多有针对它的介绍,一样应用也就更少了,咱们暂时不做介绍。索引

MySQL的数据表类型不少,其中比较重要的是MyISAM,InnoDB这两种。 
这两种类型各有优缺点,须要根据实际状况选择适合的,MySQL支持对不一样的表设置不一样的类型。下面作个简单的对比: 
MyISAM表类型是一种比较成熟稳定的表类型,可是MyISAM对一些功能不支持。事务

相关文章
相关标签/搜索