news 2026/4/15 10:50:54

MySQL 存储引擎:特点、区别与选型原则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL 存储引擎:特点、区别与选型原则

文章目录

    • 一、什么是存储引擎(一句话版)
    • 二、InnoDB vs MyISAM 核心区别总览(必背表)
    • 三、InnoDB 特点(面试重点)
      • 1️⃣ 支持事务(ACID)
      • 2️⃣ 行级锁 + MVCC(高并发神器)
      • 3️⃣ 崩溃恢复能力强
      • 4️⃣ 聚簇索引(必须会说)
    • 四、MyISAM 特点(现在主要是“认识即可”)
      • 1️⃣ 不支持事务、不支持行锁
      • 2️⃣ 读性能高(历史原因)
      • 3️⃣ 崩溃风险大
    • 五、存储引擎的选择原则(面试标准答案)
      • ✅ 90% 场景:InnoDB
      • ⚠️ 特殊场景:MyISAM(了解即可)
    • 六、如何查看 & 配置存储引擎(实操必会)
      • 1️⃣ 查看当前 MySQL 支持的引擎
      • 2️⃣ 查看某张表的存储引擎
      • 3️⃣ 建表时指定存储引擎
      • 4️⃣ 修改表的存储引擎
      • 5️⃣ 设置默认存储引擎

一、什么是存储引擎(一句话版)

存储引擎 = 表的“数据存放方式 + 读写规则”

  • 同一个 MySQL

  • 不同表

  • 可以用不同存储引擎

就像同一栋楼里:

  • 有的房间是钢筋混凝土(InnoDB)

  • 有的是木结构(MyISAM)


二、InnoDB vs MyISAM 核心区别总览(必背表)

维度InnoDB(默认)MyISAM
事务✅ 支持(ACID)❌ 不支持
行级锁表级锁
并发性能⭐⭐⭐⭐
外键✅ 支持❌ 不支持
崩溃恢复✅ redo / undo❌ 易损
MVCC
适合场景高并发、核心业务读多写少、统计类
MySQL 8 默认

👉一句话记忆法

要安全、要并发、要事务 → InnoDB
要快读、要简单、不怕挂 → MyISAM


三、InnoDB 特点(面试重点)

1️⃣ 支持事务(ACID)

  • 原子性、一致性、隔离性、持久性

  • Spring 事务底层默认依赖InnoDB

面试雷点

“Spring 事务失效有可能是因为表不是 InnoDB”


2️⃣ 行级锁 + MVCC(高并发神器)

  • 更新一行 ≠ 锁整张表

  • 读写并发不卡顿

  • 多版本并发控制(快照读)

📌 典型场景:

  • 下单

  • 扣库存

  • 转账


3️⃣ 崩溃恢复能力强

  • redo log + undo log

  • MySQL 异常宕机,重启后能自动恢复


4️⃣ 聚簇索引(必须会说)

  • 主键索引 = 数据本身

  • 二级索引保存的是主键值

二级索引 -> 主键 -> 数据

❗ 面试追问:

为什么 InnoDB 推荐使用自增主键?


四、MyISAM 特点(现在主要是“认识即可”)

1️⃣ 不支持事务、不支持行锁

  • 更新一条数据

  • 整张表被锁住 😵


2️⃣ 读性能高(历史原因)

  • 索引和数据分开存

  • 全表扫描、统计速度快


3️⃣ 崩溃风险大

  • 容易表损坏

  • 修复成本高

👉 所以:

生产环境几乎不用 MyISAM 了


五、存储引擎的选择原则(面试标准答案)

✅ 90% 场景:InnoDB

业务推荐
用户、订单、支付InnoDB
高并发接口InnoDB
有事务需求InnoDB
微服务InnoDB

⚠️ 特殊场景:MyISAM(了解即可)

场景原因
只读数据结构简单
历史归档不需要事务
临时统计表追求极致读

六、如何查看 & 配置存储引擎(实操必会)

1️⃣ 查看当前 MySQL 支持的引擎

SHOW ENGINES;


2️⃣ 查看某张表的存储引擎

SHOW TABLE STATUS LIKE 'user';

SHOW CREATE TABLE user;


3️⃣ 建表时指定存储引擎

CREATE TABLE user ( id BIGINT PRIMARY KEY, name VARCHAR(50) ) ENGINE=InnoDB;


4️⃣ 修改表的存储引擎

ALTER TABLE user ENGINE=InnoDB;

⚠️ 生产环境操作要谨慎,可能锁表


5️⃣ 设置默认存储引擎

SHOW VARIABLES LIKE 'default_storage_engine';

SET default_storage_engine=InnoDB;


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 20:27:13

TensorRT对Cross-Attention结构的支持现状

TensorRT对Cross-Attention结构的支持现状 在生成式AI迅猛发展的今天,从文生图模型Stable Diffusion到多模态理解系统CLIP,再到端到端目标检测DETR,一个共同的核心组件贯穿始终——Cross-Attention机制。它让不同序列之间实现动态信息交互&a…

作者头像 李华
网站建设 2026/4/14 19:51:58

AI驱动研发革命:从MCP到自动化部署的实战指南

本文提出一个基于大模型的AI辅助研发体系,通过MCP连接飞书、Figma等工具,以ApiFox为契约驱动,构建从需求规划、AI辅助开发到自动化部署的完整闭环。体系采用"AI辅助契约驱动自动化"三大支柱,将AI定位为"副驾驶&quo…

作者头像 李华
网站建设 2026/4/8 9:03:49

大模型推理服务合规审计:TensorRT操作留痕方案

大模型推理服务合规审计:TensorRT操作留痕方案 在金融风控系统中,一次因模型误判导致的信贷审批错误,可能引发监管调查。当审计机构要求企业提供“该决策由哪个版本模型、在何种配置下生成”时,许多团队只能尴尬地表示——我们只知…

作者头像 李华
网站建设 2026/4/11 11:59:54

Java计算机毕设之基于JAVA+springboot技术的电商精准营销推荐系统设计及实现基于JAVA技术的电商精准营销推荐系统设计及实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/15 11:38:11

构建统一推理框架:TensorRT作为核心执行单元

构建统一推理框架:TensorRT作为核心执行单元 在当今AI系统部署的现实挑战中,一个常见困境是:模型在训练时表现优异,一旦进入生产环境却“水土不服”——延迟高、吞吐低、资源消耗大。尤其是在视频分析、自动驾驶或实时推荐等对性能…

作者头像 李华