MySQL数据库曾经支持过多种存储引擎,但随着时间的推移和技术的发展,一些存储引擎已经不再被广泛使用或官方不再维护。以下是一些MySQL历史上支持过的存储引擎以及它们的主要特点:
-
InnoDB
- 默认的事务型存储引擎,支持行级锁定,完全符合ACID特性,支持外键约束,提供崩溃恢复能力。
-
MyISAM
- 早期MySQL默认的非事务型存储引擎,不支持事务和行级锁定,支持全文索引,但不支持外键约束,数据文件和索引文件分离。
-
MEMORY(HEAP)
- 数据存储在内存中,重启服务后数据会丢失,除非配置持久化选项,主要用于临时表或需要快速读写的场景。
-
ARCHIVE
- 专门用于存储大量、不常访问的历史归档数据,只支持INSERT和SELECT操作,不支持UPDATE和DELETE,数据自动压缩,不支持索引。
-
CSV
- 数据以逗号分隔值(CSV)格式存储在磁盘上,适合与其他应用程序交换数据,不支持索引和检索优化。
-
BLACKHOLE
- 黑洞引擎,接受插入但不存储数据,查询返回空结果,常用于复制拓扑中的中继服务器。
-
MERGE
- 将多个MyISAM表合并成一个逻辑表,适合报告和数据分析场景,所有表必须有相同的列和索引。
-
FEDERATED
- 允许访问远程MySQL服务器上的表,不存储任何数据,主要用于分布式数据库的设计。
-
MariaDB特有的存储引擎
- Aria(或XtraDB):MariaDB项目对InnoDB引擎的改进版本,提供更好的性能和修复了一些已知问题。
- Sequence:用于生成序列号的存储引擎。
- OQGraph:用于图形数据存储和查询的引擎,现已停止开发。