数据库索引磁盘IO:
考虑磁盘IO的影响,它相对于内存来说是很慢的。数据库索引是存储在磁盘上的,当数据量大时,就不能把整个索引全部加载到内存了,只能逐一加载每一个磁盘页(对应索引树的节点)。所以我们要减少IO次数,对于树来说,IO次数就是树的高度,而“矮胖”就是b树的特征之一,m的大小取决于磁盘页的大小。
B树
B树是为了解决磁盘IO效率诞生的
设计细想是:
将相关的数据尽量集中在一起,以便一次读取多个数据,减少硬盘操作次数。
B树算法减少定位记录时所经历的中间过程,从而加快存取速度。
B树的优点:
1.快速定位数据
2.数据集中,减少了磁盘IO次数
B树的特点:
每个节点都存有数据,包含key和value
*B树的存在的问题:
1.因每个节点都存有数据,当树的体量很大时,读到内存的节点信息就很有限
2.B树的遍历和二叉树本质一样,层级遍历,效率相对B+树低
B+树
B树的变种
B+树的特点:
1.只有叶子节点存有数据
2.叶子结点指针串联
B+树的优点:
1.因非叶子节点无数据,因此可加载到内容中更多的节点
2.遍历数据直接遍历叶子节点链表,效率快,可进行区间访问
网友评论