简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式。数据库存储引擎是数据库底层软件组件, 数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、 索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。 MySQL 支持多种类型的数据库引擎,可分别根据各个引擎的功能和特性为不同的数据库处理任务提供各自不 同的适应性和灵活性。在 MySQL 中,可以利用 SHOW ENGINES(引擎) 语句来显示可用的数据库引擎和 默认引擎。 MySQL 提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。MySQL 中, 不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。
不同的存储引擎都有各自的特点,以适应不同的需求,如表所示。为了做出选择,首先要考虑每一个存储引擎提 供了哪些不同的功能。
可以根据以下的原则来选择 MySQL 存储引擎: 如果要提供提交、回滚和恢复的事务安全(ACID 兼容)能 力,并要求实现并发控制,InnoDB 是一个很好的选择。 如果数据表主要用来插入和查询记录,则 MyISAM 引擎提供较高的处理效率。 如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存的 MEMORY 引擎中,MySQL 中使用该引擎作为临时表,存放查询的中间结果。 如果只有 INSERT 和 SELECT 操作,可以选择Archive 引擎,Archive 存储引擎支持高并发的插入操作,但 是本身并不是事务安全的。Archive 存储引擎非常适合存储归档数据,如记录日志信息可以使用Archive 引 擎。