当前位置: 首页 > news >正文

MySQL 常见存储引擎全解析:InnoDB、MyISAM、Memory 等对比与实战

一、什么是存储引擎?

存储引擎(Storage Engine)是 MySQL 中负责数据存储与管理的底层模块。不同的存储引擎负责处理表的读写、索引维护、事务支持、崩溃恢复等机制。

在创建表时可以指定使用的存储引擎:

CREATE TABLE user (
    id INT PRIMARY KEY,
    name VARCHAR(100)
) ENGINE=InnoDB;

二、常见存储引擎对比

特性InnoDBMyISAMMemoryArchive
是否支持事务✅ 是❌ 否❌ 否❌ 否
是否支持行锁✅ 行级锁❌ 表级锁❌ 表级锁❌ 表级锁
是否支持崩溃恢复✅ 崩溃后自动恢复❌ 手动恢复❌ 数据易丢失❌ 只支持追加
是否支持外键✅ 支持❌ 不支持❌ 不支持❌ 不支持
适合场景业务系统(更新频繁)读多写少、统计类系统临时数据、查询速度快日志归档、大批量插入

在这里插入图片描述


三、InnoDB 引擎(重点)

MySQL 5.5 之后默认存储引擎,支持事务、行锁、崩溃恢复、外键

✅ 优势:

  1. 事务支持(ACID 保证,支持回滚)
  2. 行级锁,并发能力强
  3. MVCC(多版本并发控制),提升读性能
  4. 崩溃恢复机制:WAL 日志机制(Redo、Undo)
  5. 聚簇索引:主键就是数据页

四、MyISAM 引擎(旧时代的代表)

📌 适合读多写少的统计类场景,如 BI、日志、历史归档表

特点:

  • 不支持事务、外键
  • 只支持表级锁
  • 支持全文索引(较早期版本)
  • 索引文件(.MYI)和数据文件(.MYD)分离,拷贝方便

问题:

  • 崩溃后恢复困难(不可靠)
  • 写性能差,读锁容易阻塞写

五、Memory 引擎(内存表)

🚀 适合高速临时数据处理,如缓存表、临时计算结果

特点:

  • 所有数据存储在内存中,重启即失效
  • 表级锁
  • 索引只支持哈希索引(默认)

场景:

  • 排行榜、会话缓存、实时统计

六、Archive 引擎(归档表)

📦 适合归档大量插入数据,但几乎不查询的场景

特点:

  • 仅支持 INSERTSELECT
  • 不支持 UPDATEDELETE
  • 数据压缩存储,节省空间
  • 不支持索引(MySQL 5.1 开始支持主键索引)

七、其它存储引擎(了解即可)

引擎名说明
CSV表数据以 CSV 文件保存,便于导出导入
Federated支持跨 MySQL 实例远程表访问
Blackhole所有写入都被“吞掉”,常用于日志流转

八、如何查看支持的存储引擎?

SHOW ENGINES;

如何修改默认存储引擎?

[mysqld]
default-storage-engine=InnoDB

九、总结建议与面试技巧

🧠 面试常见问法:

  1. InnoDB 与 MyISAM 有哪些区别?(功能 + 底层)
  2. InnoDB 为什么适合高并发写操作?
  3. 聚簇索引与非聚簇索引的底层实现?
  4. 使用 Memory 引擎时需要注意哪些问题?
  5. 什么时候你会选择 MyISAM 或 Archive?

相关文章:

  • 随笔 20250413 Elasticsearch 的 term 查询
  • 【UE5 C++课程系列笔记】35——HTTP基础——HTTP客户端异步请求API接口并解析响应的JSON
  • 【redis进阶三】分布式系统之主从复制结构(1)
  • deepseek微调环境配置
  • 如何对大模型进行优化,以提高其性能和效率?
  • 【计网】网络交换技术之分组交换(复习自用,重要1)
  • go语言学习笔记:gin + gorm + mysql 用户增删改查案例入门
  • 【Spring Boot 过滤器】
  • 中断的硬件框架
  • 【题解-洛谷】P2884 [USACO07MAR] Monthly Expense S
  • FreeBSD从14.1升级到14.2后桌面图标消失桌面背景消失且无法设置
  • 4.13日总结
  • 【RL系列】DAPO: An Open-Source LLM Reinforcement Learning System at Scale
  • 【HTTP】:应用层协议HTTP(1)
  • 银河麒麟服务器操作系统V10安装Nvidia显卡驱动和CUDA(L40)并安装ollama运行DeepSeek【开荒存档版】
  • 【中间件】nginx反向代理实操
  • 洛谷刷题小结
  • 编译uboot的Makefile编写
  • system V 共享内存
  • React 记账本项目实战:多页面路由、Context 全局
  • 反制美国钢铝关税!印度拟对美国部分商品征收关税
  • 朝着解决问题的正确方向迈进——中美经贸高层会谈牵动世界目光
  • 来伊份:已下架涉事批次蜜枣粽产品,消费者可获额外补偿,取得实物后进一步分析
  • 快评|印巴为何停火?已达成“一场胜利,各自表述”的效果
  • “科创板八条”后百单产业并购发布,披露交易金额超247亿
  • 工行回应两售出金条疑似有杂质:情况不属实,疑似杂质应为金条售出后的外部附着物