一、什么是存储引擎
关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,数据的处理上也会存在着差异,那么。对于MySQL来说,它提供了很多种类型的存储引擎,我们可以根据对数据处理的需求,选择不同的存储引擎,从而最大限度的利用MySQL强大的功能。这篇博文将总结和分析各个引擎的特点,以及适用场合,并不会纠结于更深层次的东西。我的学习方法是先学会用,懂得怎么用,再去知道到底是如何能用的。下面就对MySQL支持的存储引擎进行简单的介绍。
二、mysql存储引擎
1、mysql5.5之前默认存储引擎是MyISAM,mysql5.5之后改为InnoDB(支持事务,最常用)
2、使用以下命令可以查看MySQL支持的引擎
show engines;
三、mysql常用存储引擎的特点
1、MyISAM
MyISAM表无法处理事务,这就意味着有事务处理需求的表,不能使用MyISAM存储引擎。MyISAM存储引擎特别适合在以下几种情况下使用:
(1)选择密集型的表。MyISAM存储引擎在筛选大量数据时非常迅速,这是它最突出的优点。(2)插入密集型的表。MyISAM的并发插入特性允许同时选择和插入数据。例如:MyISAM存储引擎很适合管理邮件或Web服务器日志数据。
2、InnoDB
InnoDB是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用用于事务处理应用程序,具有众多特性,包括ACID事务支持。一般在以下几种情况下使用InnoDB存储引擎:
(1)更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。(2)事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。(3)自动灾难恢复。与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。(4)外键约束。MySQL支持外键的存储引擎只有InnoDB。(5)支持自动增加列AUTO_INCREMENT属性。
3、BDB
可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。
4、Memory
将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。
5、Merge
允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。
6、Archive
为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。
四、如何选择合适的存储引擎?(1)选择标准可以分为:(2)是否需要支持事务;(3)是否需要使用热备;(4)崩溃恢复:能否接受崩溃;(5)是否需要外键支持;然后按照标准,选择对应的存储引擎即可。