news 2026/10/11 18:07:12

MySQL学习笔记 04、MySQL进阶(索引、事务、锁)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL学习笔记 04、MySQL进阶(索引、事务、锁)

文章目录

  • 前言
  • 一、MySQL的目录结构
    • 1.1、认识目录文件
    • 1.2、配置文件设置
      • windows平台下设置
      • linux环境下设置
  • 二、MySQL的系统架构
    • 2.1、MySQL系统的逻辑架构:
    • 2.2、MySQL系统架构(包含每个部分介绍)
    • 2.3、MySQL的查询过程
  • 三、学习I/O原理以及数据库选型
    • 3.1、学习计算机硬盘原理
    • 3.2、Mysql数据库的数据结构选型
      • 为什么选择B树数据结构?
      • B-树
      • B+树(InnoDB与MyISAM底层使用)
      • 实践(感受索引的力量)
    • 3.3、为什么使用B+树
  • 四、MySQL索引
    • 4.1、索引的基本知识
    • 4.2、回表与索引覆盖
      • 介绍回表与索引覆盖
      • 引出聚簇索引与非聚簇索引(重要)
    • 4.3、索引的分类与创建
      • 4.3.1、聚簇索引与非聚簇索引(InnoDB与MyISAM不同的索引表)
      • 4.3.2、主键索引
      • 4.3.3、普通索引(常规索引,normal)
      • 4.3.4、唯一索引(unique)
      • 4.3.5、全文索引(fulltext,不常用)
      • 4.3.6、空间索引(spatial,不常用)
      • 4.3.7、复合索引(联合索引,重点!!!)
        • 认识与创建复合索引
        • 实例介绍复合索引的最左匹配原则(重要)
        • 最左匹配原则及优化器
      • 4.3.8、哈希索引(Hash,不常用也重要)
        • 认识与创建哈希索引
        • 使用哈希来解决BTREE索引较大的字段
    • 4.4、使用索引的问题
      • 4.4.1、索引究竟何时使用?
      • 4.4.2、索引不会包含有NULL值的列
      • 4.4.3、短索引使用
      • 4.4.4、排序(order by)的索引问题
      • 4.4.5、MySQL索引失效的几种情况
    • explain关键字
      • 1、id字段(三种情况)
      • 2、select_type
      • 3、type字段(重要)
        • 11种访问类型说明
        • 小总结
        • 全表扫描注意事项
      • 4、table
      • 5、partitions(分区)
      • 6、possible_keys
      • 7、key(重要)
      • 8、key_len
      • 9、ref
      • 10、rows(重要)
      • 11、filtered
      • 12、Extra(重要)
      • 总结
  • 五、MySQL事务
    • 5.1、事务介绍
    • 5.2、事务的四大特征
    • 5.3、事务并发问题描述(4个)
    • 5.4、事务的特性—隔离性
      • 5.4.1、查看与设置隔离级别
      • 5.4.2、4种隔离级别
      • 5.4.3、示例演示隔离级别解决的问题
        • 解决不可重复读
  • 六、MySQL的锁机制
    • 介绍锁的概念
    • 6.1、InnoDB行锁
      • ①记录锁(Record Lock)
        • (1)、name字段无索引(上表锁)
        • (2)、name字段带索引(上行锁)
        • 总结
      • ②间隙锁(GAP Lock)
        • 介绍说明
        • 实际案例
      • ③临键锁(记录锁与间隙锁组合,next-key lock)
      • 总结
    • 6.2、表锁(含读、写锁)
      • 介绍表锁
      • 实际案例
        • 读锁示例
        • 写锁示例
      • 总结
    • 6.3、InnoDB的锁类型
      • ①读锁
      • ②写锁
      • ③MDL锁
      • ④意向锁
      • 总结
    • 6.4、其他角度对于锁的分类
      • 乐观锁(不加锁)
      • 悲观锁(加锁)
    • 6.5、锁等待
      • 介绍锁等待
      • 出现lock wait timeout ...
    • 6.6、死锁
      • 介绍死锁以及出现案例
      • 如何避免死锁
    • 各类锁总结
    • 6.7、MVCC
      • 6.7.1、引出与介绍MVCC
      • 6.7.2、认识当前读与快照读
      • 6.7.3、MVCC解决的问题
      • 6.7.4、MVCC实现原理(含undo log)
      • 6.7.5、read view(读视图)
  • MySQL中的三种日志
    • undo log(旧日志)
    • redo log(物理日志)
    • bin log(逻辑日志)
    • 总结
  • 参考文章

前言

本文是付费专栏《Java后端开发从入门到进阶》的配套文章,所属阶段与专题为「阶段二:数据库与缓存 / 2.1 MySQL」。

专栏介绍:适合 Java 初学者及希望系统查漏补缺的开发者。专栏不仅讲“怎么用”,还会深入源码与底层原理,结合真实开发场景和代码案例,帮助你建立完整的 Java 技术知识体系。

本文从 MySQL 目录结构、系统架构与磁盘 IO 原理切入,讲解 B+ 树索引、聚簇与非聚簇索引、索引使用规则,并梳理事务和锁的核心知识,建立数据库查询与并发控制的基础认知。

本文所属付费专栏目录:Java后端开发从入门到进阶整体专栏目录汇总



一、MySQL的目录结构

1.1、认识目录文件

手动安装mysql版

整体的目录结构:

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

Windows Server 2019下Oracle 11g与19c安装部署及客户端配置实践

简介:Windows Server 2019 环境下 Oracle 数据库的部署常让不少运维新手头疼,这份图文文档正好补上了从零到可用的关键环节。与常见仅讲解 Linux 平台的教程不同,它完整走通了 Windows Server 2019 系统安装、磁盘分区、管理员初始化等前置环…

作者头像 李华
网站建设 2026/10/11 18:05:49

汽车租赁系统数据库设计:表结构、SQL实战与避坑指南

简介:《汽车租赁系统数据库设计》是一份面向数据库课程设计、毕业设计场景的完整文档资料,系统讲解如何围绕汽车租赁业务搭建关系数据库。文档从课程设计的目的与意义切入,依次介绍E-R图、数据流图、数据字典等核心概念,并详细给出…

作者头像 李华
网站建设 2026/10/11 18:04:15

1011星里有多少是「真需求」?我给爆火的技能包泼盆冷水

1011星里有多少是「真需求」?我给爆火的技能包泼盆冷水 【免费下载链接】golive-skill Take your agent-built product live: hosting, database, domain, email, payments — on your own accounts. Open-source Agent Skill zero-dependency Node CLI: detect →…

作者头像 李华
网站建设 2026/10/11 18:00:16

动力电池SOH/RUL深度学习实战:从公开数据集到可复现评估链路

简介:本资源面向计算机、人工智能、自动化等专业的在校学生与研究人员,提供一套基于深度学习的动力电池健康状态评估与剩余寿命预测完整项目源码及设计资料,可用于毕业设计、课程设计或项目初期立项演示。项目融合SVR、ElasticNet、KernelRid…

作者头像 李华
网站建设 2026/10/11 17:58:37

电缆表皮腐蚀检测数据集:1583张实采图+双格式标注

简介:电缆表皮腐蚀检测是工业视觉中典型的小目标、低对比度、类内差异大任务,其核心挑战在于缺乏真实场景覆盖的高质量标注数据。基于YOLO与VOC双格式兼容的实采数据集,可支撑模型从原理理解(归一化坐标与绝对坐标的转换机制&…

作者头像 李华
网站建设 2026/10/11 17:58:23

1200张图训练YOLOv8:快递盒缺陷检测从数据到部署

简介:这份YOLO快递包裹包装盒缺陷检测数据集,围绕物流快递场景下的目标检测与缺陷识别问题构建,面向需要进行YOLO系列模型训练与效果验证的算法工程师、学习者及物流质检相关人员。压缩包共包含2000个文件,其中以1201个txt格式标注…

作者头像 李华