mysql支持哪些存储引擎_mysql存储引擎类型介绍

来源:这里教程网 时间:2026-02-28 20:32:02 作者:

MySQL 支持多种存储引擎,每种针对不同使用场景设计。当前主流版本(MySQL 5.5 及以后)默认使用 InnoDB,但你仍可按需为单个表指定其他引擎。

InnoDB:事务型应用的默认选择

它是 MySQL 的默认引擎,适用于绝大多数业务场景,尤其强调数据一致性与高并发写入。

支持完整的 ACID 事务、崩溃自动恢复(通过 redo log)、行级锁和外键约束 使用聚簇索引组织数据,主键即物理存储顺序;二级索引中包含主键值,因此主键不宜过大 支持 MVCC(多版本并发控制),在 REPEATABLE-READ 隔离级别下可避免幻读 适合电商订单、用户账户、金融类等强一致性要求的系统

MyISAM:读多写少的轻量场景

虽已非默认,但在某些只读或低并发分析类场景仍有价值。

不支持事务、外键和行锁,仅支持表级锁,高并发写入时易阻塞 支持全文索引(FULLTEXT),适合简单搜索引擎或日志归档查询 数据文件(.MYD)与索引文件(.MYI)分离,可单独优化存放路径 适合报表缓存表、历史统计快照、静态配置表等读远大于写的场景

MEMORY(Heap):纯内存临时数据

所有数据驻留在内存中,速度极快,但服务重启即丢失。

不支持事务,仅支持哈希索引(默认)或 B-Tree 索引(需显式声明) 适合中间计算结果、会话缓存、临时 JOIN 表或快速去重临时表 注意内存限制:表大小受 max_heap_table_size 参数控制,超限会报错

ARCHIVE 和其他辅助引擎

这些引擎面向特定目的,不用于主业务表。

ARCHIVE:高压缩比、仅支持 INSERT/SELECT,无索引,适合长期归档日志、审计记录 CSV:以文本 CSV 格式存数据,便于外部程序直接读取,但无事务、无索引、性能差 FEDERATED:不存数据,只代理访问远程 MySQL 表,依赖网络,不支持事务 BLACKHOLE:写入即丢弃,常用于复制拓扑中的“日志中继”或压力测试

查看当前支持的引擎可用

SHOW ENGINES;
,查默认引擎用
SELECT @@default_storage_engine;
。建表时加
ENGINE=InnoDB
显式指定,已有表可通过
ALTER TABLE t ENGINE=MyISAM;
修改。

相关推荐