MySQL 存储引擎
-
InnoDB:
- 特点:支持事务处理(ACID事务)、行级锁定、外键约束、崩溃恢复机制。
- 适用场景:需要事务处理的应用程序,如银行、电商系统等高并发读写操作场景。
-
MyISAM:
- 特点:不支持事务处理,读取速度快,支持全文索引。
- 适用场景:适用于读取操作远多于写入操作的场景,如数据仓库、日志系统等。
-
MEMORY:
- 特点:数据存储在内存中,读写速度快,但数据易丢失。
- 适用场景:适用于临时表和缓存,需要快速读写的小型数据集。
-
CSV:
- 特点:数据以CSV格式存储,便于数据导入导出。
- 适用场景:适用于数据交换、导入导出操作。
-
ARCHIVE:
- 特点:专门用于大量历史数据的归档,支持高效压缩。
- 适用场景:适用于日志归档、历史数据存储等。
-
Federated:
- 特点:用于访问远程MySQL服务器的数据,本地不存储数据。
- 适用场景:需要整合多个MySQL服务器数据的场景。
-
NDB Cluster:
- 特点:用于MySQL集群,支持分布式事务和高可用性。
- 适用场景:适用于高可用性和高并发处理的场景,如在线游戏、实时分析系统等。
-
Blackhole:
- 特点:接收数据但不存储,主要用于日志记录和数据复制。
- 适用场景:适用于需要记录数据但不需要实际存储的场景。
====================================================================================
《1》存储引擎是MySQL的核心部分。
存储引擎:是存储数据、建立索引、更新/查询数据等技术的实现方式(不同存储引擎,实现这些技术的机制是不一样的)。
存储引擎是基于表的,而不是基于库的,也就是说,同一个数据库的不同表,可以选择不同的存储引擎,所以存储引擎也可被称为“表类型”。
之前我们在MySQL中创建表时,并没有指明使用哪种存储引擎,这是因为存储引擎默认为InnoDB。
《2》在创建表时,指定该表的存储引擎:
《3》查看当前数据库支持哪些存储引擎:
show engines;
《4》查询某张表的存储引擎:可以通过查询该表的建表语句得知