Mysql InnoDB底层实现
1.InnoDB存储结构
InnoDB的基本存储结构是页,页也是InnoDB存储引擎管理数据库的最小磁盘单位。
- 各个数据页之间是一个双向链表
- 每个数据页中的记录则是一个单向链表
- 通过主键查找可以在数据页的页目录中通过二分查找,快速找到指定记录,而以其他列作为搜索条件时则需要依次遍历单链表中的每条记录
2.InnoDB的索引实现
因此,我们需要将无序的数据变得相对有序,以加快查询速度,这就是索引的作用。
InnoDB 是通过 B+Tree 结构对主键建立索引,然后在叶子节点中存储记录,该索引被称作聚集索引。采用 InnoDB 引擎的数据存储文件有两个,一个定义文件,一个是数据文件。
若建索引的字段不是主键 ID,则对该字段建索引,然后在叶子节点中存储的是该记录的主键,然后通过主键索引找到对应的记录,该索引被称作非聚集索引。
3.InnoDB中的八种锁
InnoDB一共有8种锁类型,其中,意向锁(Intention Locks)和自增锁(AUTO-INC Locks)是表级锁,剩余全部都是行级锁。此外&#x