1. 掌握页的概念 2. 认识B(B+)树 3. 掌握索引 4. 了解Buffer Pool缓冲池 5. 了解查询一条数据的过程 知识要点 Page--页 定义 磁盘和内存之间交互的基本单位。一个页的大小一般是16KB。页分为很多种,存放表空间头部信息的页、存放undo log信息的页等等,我们把存放表中数据记录的页称为索引页或数据页。
1、InnoDB 存储引擎的最小存储单元是页,页可以用于存放数据也可以用于存放键值 + 指针,在 B+ 树中叶子节点存放数据,非叶子节点存放键值 + 指针。 2、索引组织表通过非叶子节点的二分查找法以及指针确定数据在哪个页中,进而在去数据页中查找到需要的数据; 三、那么回到我们开始的问题,通常一棵 B+ 树可以存放多...
InnoDB 和之前的 MyISAM 比,最大的变化就是将磁盘上面数据的基本存储结构从索引+数据这样的分体式,变成了所有数据都挂在索引上的整体式:从“B+ 树索引”加“磁盘连续存储数据”(中间用指针链接)变成了“B+ 树存储全部索引和数据”。 这个操作给 MySQL 带来了翻天覆地的变化。那么,InnoDB 到底做了哪些取舍呢?
1、InnoDB存储引擎的最小存储单元是页,页可以用于存放数据也可以用于存放键值+指针,在B+树中叶子节点存放数据,非叶子节点存放键值+指针。 2、索引组织表通过非叶子节点的二分查找法以及指针确定数据在哪个页中,进而在去数据页中查找到需要的数据; 那么回到我们开始的问题,通常一棵B+树可以存放多少行数据? 这里我们...
其实这就是 B+ 树。 现在无论是存放用户记录的数据页,还是存放目录项记录的数据页,都存放到 B+ 树这种数据结构中。 所有的数据页都成为 B+ 树的节点。 真正存用户记录的数据页都在 B+树最底层的节点上,称为叶子节点或者叶节点。 而存放目录项记录的节点称为非叶子节点或者内节点。
再次强调,InnoDB存储引擎表总是B+树索引组织的 Freee Space 指的是页的空闲空间,同样也是个链表数据结构 在一条记录被删除后,删除的空间会被加入到空闲链表中 五、Page Directory Page Directory(页目录)中存放了记录的相对位置(注意,这里存放的是页相对位置,而不是偏移量)。有些时候这些记录指针称为Slots(槽)或...
B+树来临了 其实上面演绎的过程,以及最终的图结构就是B+树,但是与实际生成B+树的过程是相反的,因为从上述的演绎过程是为了方面理解所以采用的这样方式进行分析,实际上在InnoDB生成B+树的时候是倒着来的,具体的内容详见下回分解。 下集预告 其实针对主键生成的B+树,就是所谓的【聚簇索引】,如果在【非主键】上...
一般来说B+树是由多个页组成的多级层级结构,每个页16Kb,对于主键索引来说,叶子节点存放用户完整行数据,非叶子节点存放索引信息(索引列和页号)。每个数据页内部,通过页目录实现二分查找 B+ tree也是利用了空间换时间的方式,同时利用索引层可以存放大量索引这一特点,使得B+ tree整体看上去更矮更胖,即定位记录需要的...
innodb存储引擎 b+树树高是如何影响磁盘io次数的?看一些帖子上说树的每一个节点就是一个磁盘页,树越高访问的节点就越多,所以io次数会多。那这样一个节点如果就存放很少的数据 磁盘页填充不满 这势必会造成…显示全部 关注者33 被浏览17,083 关注问题写回答 邀请回答 好问题 7 添加评论 ...
InnoDB存储引擎的最小存储单元是页,页可以用于存放数据也可以用于存放键值+指针,在B+树中叶子节点存放数据,非叶子节点存放键值+指针。 索引组织表通过非叶子节点的二分查找法以及指针确定数据在哪个页中,进而在去数据页中查找到需要的数据; 那么回到我们开始的问题,...