博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL数据表类型
阅读量:5078 次
发布时间:2019-06-12

本文共 1328 字,大约阅读时间需要 4 分钟。

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

①   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对一些功能不支持。

转载于:https://www.cnblogs.com/qiucw-cn/p/10817913.html

你可能感兴趣的文章
获取文件编码格式
查看>>
XPO学习(1)----第一个基于XPO的 数据感知应用程序
查看>>
Django-DjangoUeditor
查看>>
MongoDB in Action (MongoDB 实战).pdf
查看>>
Oracle常用SQL与练习
查看>>
spring注解
查看>>
python中random库的使用
查看>>
cheerio 服务器端的jquery
查看>>
心理 情绪
查看>>
vc中debug版本和release版本
查看>>
PCduino+LAMP(Linux Apache Mysql PHP)配置 web server
查看>>
java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).
查看>>
[转载(有删改)]单链表
查看>>
在数组中寻找出现次数大于N/K的数
查看>>
如何用Fiddler手机抓包
查看>>
学好Mac常用命令,助力iOS开发
查看>>
217. Contains Duplicate
查看>>
vue2.0 关于Vue实例的生命周期
查看>>
jenkins 更换主数据目录
查看>>
Silverlight中恼人的g.i.cs错误
查看>>