美文网首页
局部性原理

局部性原理

作者: 摸摸脸上的胡渣 | 来源:发表于2020-02-13 16:29 被阅读0次

    本篇文章并非简单的介绍OS中的局部性原理,而是还要结合数据库和 OS cache架构谈谈局部性原理,对这两个架构概念的积极影响,如果已经猜到我要讲的内容,可以帮我看下是否有缺漏,希望在评论区见到不同的声音。

    局部性原理

    CPU在处理数据的过程中, 常见情况下是会进行连续数据的处理。
    比如处理了0x00001到0x0000F数据,那么接下来大概率要处理以0x0000F作为起始地址的数据。

    局部性原理对数据库架构的影响

    传统关系型数据库的数据,一般存储在硬盘中,需要进行随机IO寻址,比较耗费时间。所以在从硬盘中获取数据时,一般会以page为单位进行数据的获取,一次获取,就可以满足数据库引擎的多次处理,减少了多次硬盘级别IO的处理,提升了处理的效率。
    这也是为什么MySQL InnoDB引擎底层索引选择B+,而不是红黑树。B+会把叶子节点的大小设置为一个page大小,这样子就会一次性读出很多数据供server处理。而红黑树不仅初度小,层级深,更要命的是逻辑上临近的数据,在存储时可能相离很远,局部性原理排不上用场,所以被pass。

    局部性原理对OS缓存架构的影响

    不同材料的存储介质,价钱相差很多,虽然我们要在2020年实现小康梦,但也不能把所有存储介质都换成寄存器,可以实现但没必要。
    因为局部性原理的存在,可以让不同level的缓存进行数据的预读,尽可能的去压榨cpu的算力。

    相关文章

      网友评论

          本文标题:局部性原理

          本文链接:https://www.haomeiwen.com/subject/nohlfhtx.html