第6章:锁

本章是mysql技术内幕这本书的读书笔记。可以点击超链接查看所有的读书笔记。

1. Innodb存储引擎中的锁

1.1 数据库锁分类(latch和lock)

latch:轻量级锁,要求锁定时间非常短。如果持续时间长,则应用的性能会非常差。在InnoDB存储引擎中,latch可以分为mutex(互斥量)和rwlock(读写锁)

lock: 锁的对象是事务。用来锁定的是数据库中的表、页、行对象。

关于两者的比较可以参考下图:

第5章:索引和算法

本章是mysql技术内幕这本书的读书笔记。可以点击超链接查看所有的读书笔记。

1. B+树与索引

B+树就是指一个多路平衡树,只不过记录都存放在叶子节点,其他节点都是索引节点。

1.1 B+树插入

扇出的值是固定的。在数据库里面B+树索引的层数一般都比较低,位2-4层,这样经过2-4次IO就可以取到数据。

推荐看下书上p188-p199的例子,演示了B+树上插入操作的进行过程。B+树插入操作分情况主要依据叶子节点和索引节点是否插满了数据。

对于插入操作注意以下知识点:

优先进行树的旋转避免插入时的页拆分。在某个叶子节点满,但是其兄弟节点没有满的情况下......

第4章:表

本章是mysql技术内幕这本书的读书笔记。可以点击超链接查看所有读书笔记。

1. 章节介绍

本章主要讨论InnoDB存储引擎表的逻辑存储以及实现。重点分析表的物理存储特征,即数据在表中是如何组织和存放的。表示关于特定实体的数据集合,也是关系型数据模型的核心。

2. 索引组织表

在InnoDB存储引擎中,表都是根据主键顺序组织存放的。没显示定义主键,InnoDB存储引擎也会按照如下方式选择或者创建主键:

用非空唯一索引的列作为主键

自动创建一个6字节大小的指针

查看表的单列主键值可以使用以下语句(关键是使用_rowid)

select _rowid fr......