提示:Mysql面试题
创建表时没有索引,是否会创建B+树
Introduction
当我们创建一个表时,如果没有创建索引,那么是否还会去创建B+树呢?这个问题可能会让一些初学者感到困惑。在本文中,我们将探讨这个问题,并解释在没有创建索引的情况下,B+树是如何工作的。
在 MySQL 中,如果我们在创建表时没有创建索引,那么系统会自动为我们生成一个 B+ 树。如果在创建表的时候指定了主键,比如说 ID,那么 B+ 树 就会以该主键去创建它的叶子节点索引。如果没有指定主键,那么系统会默认为我们生成一个 B+ 树,使用隐式的 row ID 作为主键。这个 row ID 是系统自动生成的,只供 MySQL 的内部使用。
B+ 树的生成
在没有创建索引的情况下,如果我们在创建表的时候指定了主键,比如说 ID,那么 B+ 树 就会使用该主键去创建它的叶子节点索引。如果没有主键的话,它也会去帮我们去创建这个叶子节点索引。那么没有主键的话,这个 B+ 树 里面存的是什么呢?它会帮我们去生成一个隐式的row ID。如果没有这个组件的话,系统也就是 MySQL 这个系统会帮我们去生成一个 RID 出来去标识一下。同样,它也和其他行不会重复。那么它这么做的主要目的就是帮我们去存储我们的数据或者合理地去存储这份数据,每一个数据都能够在 B+ 树 中落地到具体应该存放的这个位置。