news 2026/2/10 4:29:22

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/2/9 13:57:19

大模型推理服务SLI/SLO定义参考:含TensorRT指标

大模型推理服务SLI/SLO定义参考:含TensorRT指标 在构建现代AI系统时,我们常面临一个看似简单却极具挑战的问题:如何让大模型既“聪明”又“快”?尤其是在生产环境中,用户不会关心你的模型参数有多少亿,他们…

作者头像 李华
网站建设 2026/2/8 23:40:35

Java毕设项目:基于JAVA技术的电商精准营销推荐系统设计及实现(源码+文档,讲解、调试运行,定制等)

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

作者头像 李华
网站建设 2026/2/6 22:23:27

AI智能体完全指南:从ChatGPT到自主系统,程序员必学,小白必藏

本文以通俗易懂的方式介绍了AI智能体的概念、能力和结构。AI智能体不同于传统聊天机器人,它能自主思考规划、调用工具完成任务,从能力上可分为建议型、协作型和自主型。从结构看,智能体通常包括大脑(大语言模型)、感知与记忆系统、行动与工具…

作者头像 李华
网站建设 2026/2/8 21:54:59

Windows SSH免密登录终极指南

🔧 背景说明 在 Windows 系统中配置 SSH 免密登录时,由于系统对文件权限、路径命名和配置格式的特殊要求,用户常会遇到以下问题: ssh-copy-id 命令不可用出现 Permission denied 错误公钥复制后仍无法登录authorized_keys 文件未…

作者头像 李华
网站建设 2026/2/8 4:04:43

使用TensorRT优化音乐生成模型Performance效果显著

使用TensorRT优化音乐生成模型:从高延迟到实时生成的跃迁 在AI驱动的创意工具日益普及的今天,用户不再满足于“能生成音乐”的系统,而是期待一个能够实时响应、流畅互动的作曲伙伴。无论是在线AI钢琴助手,还是游戏中的动态背景音乐…

作者头像 李华
网站建设 2026/2/9 0:55:26

从“手写代码”到“AI协创”:一位开发者的2025年度AI辅助开发革新实录

键盘敲击声在办公室里确实稀疏了不少,取而代之的,是团队成员间、以及我们与AI助手之间日益频繁的思维对话与概念碰撞。这看似微小的场景变化,却是我在2025年最深切的体感——工作与思考的范式,正在发生一场静默但深刻的转移。 这…

作者头像 李华