Mysql InnoDB底层实现

本文详细解析了InnoDB存储结构,包括页和数据页的双向链表,以及主键查找的高效方式。接着,重点介绍了InnoDB的索引实现,如聚集索引和非聚集索引的B+Tree结构。最后,详细阐述了InnoDB的八种锁,包括共享锁、排它锁、意向锁、记录锁、间隙锁、下一个键锁、插入意向锁和自增锁,以及它们在不同场景下的作用和行为。
摘要由CSDN通过智能技术生成

1.InnoDB存储结构

InnoDB的基本存储结构是页,页也是InnoDB存储引擎管理数据库的最小磁盘单位。在这里插入图片描述

  • 各个数据页之间是一个双向链表
  • 每个数据页中的记录则是一个单向链表
  • 通过主键查找可以在数据页的页目录中通过二分查找,快速找到指定记录,而以其他列作为搜索条件时则需要依次遍历单链表中的每条记录

2.InnoDB的索引实现

因此,我们需要将无序的数据变得相对有序,以加快查询速度,这就是索引的作用。

InnoDB 是通过 B+Tree 结构对主键建立索引,然后在叶子节点中存储记录,该索引被称作聚集索引。采用 InnoDB 引擎的数据存储文件有两个,一个定义文件,一个是数据文件。

若建索引的字段不是主键 ID,则对该字段建索引,然后在叶子节点中存储的是该记录的主键,然后通过主键索引找到对应的记录,该索引被称作非聚集索引。在这里插入图片描述

3.InnoDB中的八种锁

InnoDB一共有8种锁类型,其中,意向锁(Intention Locks)和自增锁(AUTO-INC Locks)是表级锁,剩余全部都是行级锁。此外&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值