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

MySQL 存储引擎、事务、三大范式与SQL执行流程详解

大家好我是程序员二叉。简介本文梳理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保障事务与数据持久化。
http://www.gsyq.cn/news/1411260.html

相关文章:

  • 5G核心网成本优化:SDN与NFV混合架构的数学建模与工程实践
  • UE4 Niagara爆炸特效保姆级教程:从火焰、烟雾到爆炸冲击波,一次搞定
  • 如何3秒获取百度网盘提取码:baidupankey让你的资源获取效率提升500%
  • 网络基础深度剖析:IP地址、子网掩码、网关与DNS
  • 保姆级教程:在Ubuntu 22.04上从Anaconda到PyTorch,一步步搞定CUDA环境(避坑指南)
  • 昇腾CANN asc-devkit 工具链:从环境配置到第一个推理结果
  • 2026年 同步轮选型与源头厂家优选:3M/5M/8M同步轮品牌专业工厂及高精度传动方案深度解析 - 品牌企业推荐师(官方)
  • 2026年主流视频笔记自动生成工具深度测评,算完效率准确率性价比,差距竟然这么大
  • 智能电网边缘计算:基于LSTM的动态电价预测与HDTG任务调度实践
  • Wider Face数据集实战:用Python解析标注文件,5分钟搞定数据预处理
  • 大语言模型采样策略全解析:从温度采样到Top-p的工程实践
  • 2026年05月推荐:集装箱住宿生产厂家中的佼佼者,集装箱住宿/箱式房/集装箱租赁/活动板房,集装箱住宿厂家推荐 - 品牌推荐师
  • EG2129带过流保护全桥驱动芯片:600V耐压双路比较器,硬件级过流保护让全桥设计更安全
  • 从BP手忙脚乱到智能决策:Seraphine如何改变我的英雄联盟体验
  • 2026年 电磁刹车器厂家/通电式/失电式/离合刹车器组推荐榜单:紧凑高效与精准制动的技术标杆 - 品牌企业推荐师(官方)
  • 学校智能照明系统品牌推荐,司拜德为何靠谱? - mypinpai
  • 告别Spine?在Unity里用免费DragonBones插件做2D角色动画的完整流程
  • 告别平方律!用Gm/Id方法搞定65nm以下工艺的运放设计(附Virtuoso仿真图)
  • TerraMax视觉感知系统:多摄像头协同与经典CV算法在自动驾驶中的应用
  • C++中std::allocator的使用案例详解
  • 别再到处找教程了!Windows 10/11 保姆级 Mosquitto MQTT 服务器搭建(含MQTTX客户端连接测试)
  • 别再只会点Merge了!IntelliJ IDEA里用Rebase优雅解决Git冲突的完整流程
  • 选择命理推演软件,到底该看什么?
  • 别再混淆了!一文讲透嵌入式中间件与互联网中台的核心差异(附基站中间件实战API解析)
  • 易基因:Bioact Mater/IF20.3:华南理工大学王迎军院士团队RRBS等揭示DNA甲基化调控衰老骨缺损修复新机制
  • 从游戏图形到AI芯片:浮点数格式FP32/FP16/FP8的演进史与硬件设计启示
  • 避坑指南:从ToLua迁移到XLua,我踩过的那些‘坑’和最佳实践
  • Keil uVision彻底卸载指南:解决残留问题与注册表清理
  • 保姆级教程:用C++写个进程扫描器,揪出学生机房管理助手7.5的随机马甲
  • 【脑洞】是否可以存在一个“零知识储备”的大模型?一个像实习生的大模型