大家好我是程序员二叉。简介本文梳理MySQL高频核心知识点涵盖主流存储引擎特性、InnoDB与MyISAM差异、事务ACID特性、数据库三大范式以及一条SQL的完整执行流程。内容兼顾基础概念与实战经验适合入门学习、技术复盘与面试复习。一、MySQL 常见存储引擎1. 主流存储引擎介绍MySQL 支持多种存储引擎不同引擎适用于不同业务场景日常开发中常用引擎如下InnoDBMySQL 5.5 及以上默认引擎主流业务系统首选。MyISAM早期默认引擎适合纯查询、低并发场景。Memory数据存储在内存读写速度快重启数据丢失多用于临时缓存。CSV文本格式存储无索引常用于数据导入导出。Archive高压缩存储仅支持增、查操作适合日志归档。2. InnoDB 与 MyISAM 核心区别对比项InnoDBMyISAM事务支持支持 ACID 事务不支持事务锁机制行级锁表级锁并发能力强仅表级锁并发性能差外键约束支持不支持故障恢复依赖日志宕机可恢复数据无日志宕机易损坏数据全文索引5.6 版本后支持原生支持COUNT(*) 查询需全表扫描效率较低缓存总行数效率极高适用场景高并发、增删改频繁的核心业务静态数据、只读、低并发场景3. InnoDB 相对 MyISAM 的优势支持事务保证数据一致性适配下单、支付等核心业务。采用行级锁并发读写能力更强。具备完善的崩溃恢复机制数据安全性更高。支持外键约束可维护表之间数据关联完整性。官方持续迭代优化稳定性与生态更好。二、数据库事务与 ACID 四大特性1. 什么是事务事务是一组不可分割的 SQL 执行单元单元内所有 SQL要么全部执行成功要么全部失败回滚保证业务数据不会出现中间异常状态。典型场景银行转账扣款和入账两条 SQL 必须同时生效任意一步失败则全部回滚。2. 事务四大特性 ACID原子性Atomicity事务是最小执行单元不可拆分失败则整体回滚。一致性Consistency事务执行前后数据库数据完整性规则保持不变。隔离性Isolation多个并发事务相互隔离互不干扰。持久性Durability事务提交后数据永久保存服务器宕机也不会丢失。三、数据库三大范式1. 三大范式定义范式是数据库表设计规范目的是减少数据冗余、规避更新异常。第一范式(1NF)字段具备原子性每一列数据不可再拆分。第二范式(2NF)满足 1NF非主键字段完全依赖主键消除部分依赖。第三范式(3NF)满足 2NF非主键字段不存在传递依赖主键进一步减少冗余。2. 日常开发是否需要严格遵守不需要严格死守范式。完全遵循范式冗余少、维护简单但表拆分过细多表联查会降低查询性能。实际开发采用适度反范式设计合理增加冗余字段用空间换查询效率。举例订单表冗余用户名、手机号避免频繁联表查询。四、一条 SQL 语句的完整执行流程以普通查询 SQL 为例整体执行流程如下建立连接客户端通过 TCP 连接 MySQL完成身份与权限校验。查询缓存MySQL 8.0 已移除命中缓存直接返回结果未命中继续执行。解析器做词法、语法解析生成语法树校验 SQL 合法性。优化器选择最优执行方案如选定索引、确定联表顺序。执行器按照优化方案调用存储引擎接口执行 SQL。存储引擎层InnoDB优先读取缓冲池 Buffer Pool内存无数据则从磁盘加载。返回结果数据逐层回传最终返回给客户端。补充增、删、改类语句还会同步写入 undo log、redo log、binlog保障事务与数据持久化。