数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行建立、查询、更新和删除数据操做。不一样的存储引擎提供不一样的存储机制、索引技巧、锁定水平等功能,使用不一样的存储引擎还能够得到特定的功能。
如今许多数据库管理系统都支持多种不一样的存储引擎。MySQL 的核心就是存储引擎。数据库
InnoDB 事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MySQL 5.5.5 以后,InnoDB 做为默认存储引擎。缓存
MyISAM 是基于 ISAM 的存储引擎,并对其进行扩展,是在 Web、数据仓储和其余应用环境下最常使用的存储引擎之一。MyISAM 拥有较高的插入、查询速度,但不支持事务。
MEMORY 存储引擎将表中的数据存储到内存中,为查询和引用其余数据提供快速访问。安全
MySQL 支持多种类型的数据库引擎,可分别根据各个引擎的功能和特性为不一样的数据库处理任务提供各自不一样的适应性和灵活性。在 MySQL 中,能够利用 SHOW ENGINES 语句来显示可用的数据库引擎和默认引擎。
MySQL 提供了多个不一样的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在 MySQL 中,不须要在整个服务器中使用同一种存储引擎,针对具体的要求,能够对每个表使用不一样的存储引擎。
MySQL 5.7 支持的存储引擎有 InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE 等。服务器
可使用SHOW ENGINES
语句查看系统所支持的引擎类型,结果如图所示。并发
Support 列的值表示某种引擎是否能使用,YES
表示可使用,NO
表示不能使用,DEFAULT
表示该引擎为当前默认的存储引擎。高并发
不一样的存储引擎都有各自的特色,以适应不一样的需求,如表所示。为了作出选择,首先要考虑每个存储引擎提供了哪些不一样的功能。性能
功能 | MylSAM | MEMORY | InnoDB | Archive |
---|---|---|---|---|
存储限制 | 256TB | RAM | 64TB | None |
支持事务 | No | No | Yes | No |
支持全文索引 | Yes | No | No | No |
支持树索引 | Yes | Yes | Yes | No |
支持哈希索引 | No | Yes | No | No |
支持数据缓存 | No | N/A | Yes | No |
支持外键 | No | No | Yes | No |
能够根据如下的原则来选择 MySQL 存储引擎:spa
提示:使用哪种引擎要根据须要灵活选择,一个数据库中多个表可使用不一样的引擎以知足各类性能和实际需求。使用合适的存储引擎将会提升整个数据库的性能。日志
InnoDB 是系统的默认引擎,支持可靠的事务处理。
使用下面的语句能够修改数据库临时的默认存储引擎code
SET default_storage_engine=< 存储引擎名 >
注意:将 MySQL 数据库的临时默认存储引擎修改成 其余的存储引擎时 ,可是当再次重启客户端时,默认存储引擎仍然是 InnoDB。