B树思想解析

  B树得设计思路很吊,基本思路是搜索树(最简单的搜索树-二叉搜索树),B树在搜索树的基础上如何脱颖而出呢,它是从计算机磁盘与内存的io的设计中找到可以加快搜索的方法。一个程序要读取一个数据,如果数据是在内存中,那么读取的时间是ns级的,如果是在磁盘中则是ms级的,所以B树的设计思路是减少磁盘读取的次数,以优化搜索的效率。如何减少磁盘的读取次数呢,原来,每次往内存读取数据,计算机设计者为了使起减少从磁盘中读取数据,根据局部性原理,每次读取连续的一块区间的数据,也就是一页或多页的数据。因此,B树将每个节点存入k个关键字,k是根据计算机的页的大小决定的,如此,每次从磁盘中读取数据,都是一个节点的数据。里面包含了k个关键字。如此减少了磁盘的读取次数。而且其是搜索树的变种,所以搜索的时间复杂度能保证是O(logn)。

说实话,这思路太***了,必须要具备计算机io的知识才能构思的出来吧,膜拜

posted @ 2020-05-14 14:58  会飞的joy  阅读(134)  评论(0编辑  收藏  举报