Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions MySQL高级篇/MySQL索引及调优篇.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,15 +137,15 @@ mysql> CREATE TABLE index_demo(
INSERT INTO index_demo VALUES(4, 4, 'a');
```

因为 **页10** 最多只能放3条记录,所以我们不得不再分配一个新页:
因为 **页10** 最多只能放3条记录,所以我们不得不再分配一个新页:这个过程称为 **页分裂**。

![image-20220616155306705](MySQL索引及调优篇.assets/image-20220616155306705.png)

注意:新分配的 **数据页编号可能并不是连续的**。它们只是通过维护者上一个页和下一个页的编号而建立了 **链表** 关系。另外,**页10**中用户记录最大的主键值是5,而**页28**中有一条记录的主键值是4,因为5>4,所以这就不符合下一个数据页中用户记录的主键值必须大于上一个页中用户记录的主键值的要求,所以在插入主键值为4的记录的时候需要伴随着一次 **记录移动**,也就是把主键值为5的记录移动到页28中,然后再把主键值为4的记录插入到页10中,这个过程的示意图如下:

![image-20220616160216525](MySQL索引及调优篇.assets/image-20220616160216525.png)

这个过程表明了在对页中的记录进行增删改查操作的过程中,我们必须通过一些诸如 **记录移动** 的操作来始终保证这个状态一直成立:下一个数据页中用户记录的主键值必须大于上一个页中用户记录的主键值。这个过程称为 **页分裂**。
这个过程表明了在对页中的记录进行增删改查操作的过程中,我们必须通过一些诸如 **记录移动** 的操作来始终保证这个状态一直成立:下一个数据页中用户记录的主键值必须大于上一个页中用户记录的主键值。

* **给所有的页建立一个目录项。**

Expand Down