news 2026/6/15 11:25:38

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/6/9 23:27:34

AI的副驾驶已就位:“人人都是产品经理”时代真正到来?

在杭州一家互联网公司的会议室里,一场产品评审会陷入了诡异的沉默。一位年轻产品经理轻点键盘,一份由AI生成的、结构工整、逻辑清晰的PRD(产品需求文档)便呈现在大屏幕上。会议室里先是响起低低的惊叹,随后便是漫长的沉…

作者头像 李华
网站建设 2026/6/7 16:45:27

绿盾注册机

天锐绿盾是一款专业的企业内网安全管理软件,以 “内核级透明加密 数据全生命周期管控” 为核心优势,构建 “加密 - 权限 - 审计 - 终端” 四维防护体系。它采用驱动层动态加解密技术和 256 位高强度加密算法,支持 20000 余种文件格式创建即加…

作者头像 李华
网站建设 2026/6/5 4:46:46

NVIDIA Orin芯片上部署TensorRT自动驾驶模型案例

在NVIDIA Orin上部署TensorRT自动驾驶模型:软硬协同的工程实践 在智能驾驶域控制器的研发一线,我们常常面临一个棘手的问题:实验室里训练得再完美的模型,一旦放到车载环境中就“水土不服”——推理延迟飙高、内存占用爆炸、功耗压…

作者头像 李华
网站建设 2026/6/10 14:02:11

构建自动化CI/CD流程:TensorRT模型持续集成

构建自动化CI/CD流程:TensorRT模型持续集成 在AI系统从实验室走向产线的过程中,一个常被忽视但至关重要的问题浮出水面——为什么训练时表现优异的模型,部署后却卡顿频发、响应迟缓? 答案往往不在于算法本身,而在于推…

作者头像 李华
网站建设 2026/5/22 20:08:24

TensorRT与TensorBoard集成实现可视化分析

TensorRT与TensorBoard集成实现可视化分析 在现代AI系统开发中,一个日益突出的矛盾摆在工程师面前:我们既需要极致的推理性能来满足实时性要求,又渴望对模型行为有清晰的理解和掌控。尤其是在将训练好的模型部署到生产环境时,这种…

作者头像 李华
网站建设 2026/5/9 18:44:26

浔川社团关于福利发放方案再次调整的征求意见稿公告

浔川社团关于福利发放方案再次调整的征求意见稿公告各位社团成员:为保障社团核心项目推进,结合实际工作安排,现就福利发放方案再次调整事宜征求全体成员意见。因浔川代码编辑器v2.1.0正式版内测工作将于明年2月底启动,该项目占用存…

作者头像 李华