昆明岭蓝网站建设公司,网站建设yankt,企业网站自助建,pc网站建设MySQL的innoDB引擎使用的是B树的结构来存储索引的#xff0c;那么为什么会使用B树呢#xff1f;为什么不使用其他的结构?本篇我们深入MySQL底层来了解B树。本文中说到的MySQL都是InnoDB引擎的 在这之前#xff0c;先了解一下InnoDB是如何存储数据的 MySQL是根据数据页的方式…MySQL的innoDB引擎使用的是B树的结构来存储索引的那么为什么会使用B树呢为什么不使用其他的结构?本篇我们深入MySQL底层来了解B树。本文中说到的MySQL都是InnoDB引擎的 在这之前先了解一下InnoDB是如何存储数据的 MySQL是根据数据页的方式来存储数据的每个数据页包含七个部分 把这些页连接起来相当于一个双向链表 那索引就相当于是这些数据页的目录索引的作用就是更快的找到这些数据页 那么B树的设计就符合这些特点 B树仅在叶子节点存储数据在非叶子节点存储的是索引值就可以使B树在非叶子节点在相同空间的情况下可以存储更多的索引来指向叶子节点所以B树看起来更矮胖层级更低
为什么不用B树
这就要说一下B树与B树的区别了 B树在自己的非叶子节点也存储了数据在数据页相同容量的情况下B树存储的数据条数更少就会导致B树的层级变高 那么又有人会问层级高有什么影响吗 当然是有的MySQL会将数据持久化到磁盘中在每一次遍历节点的时候都是一次I/O操作我们知道I/O操作是分成慢的同时也要耗费较多的资源所以MySQL在设计索引结构的时候就要设计成层级较低的结构 而且B树比B树更节约磁盘资源。