gpt4 book ai didi

sql-server - B+ 树索引究竟存储在哪里?

转载 作者:行者123 更新时间:2023-12-04 00:11:39 26 4
gpt4 key购买 nike

我正在看这个video在 B+ 树基础上,他提到 B+ 树的叶子存储在磁盘上,除了 root存储在 main memory .我在类里面的教授提到索引存储在main memory中。 , 和 leaves包含指向磁盘的数据指针。

见下图:

enter image description here

我的问题是所有索引都存储在哪里?

  • 我们是否只将根存储在主内存中?
  • 所有索引都存储在主内存中?

  • 我已经浏览了几个没有人明确提到这部分的链接?任何人都可以澄清我的问题。谢谢

    最佳答案

    你被告知在很多方面都是垃圾。

    为了让 B 树索引正常工作,没有预先设计的方案需要存储什么。 RDBMS 可以自由决定在哪里存储什么类型的数据。

    我所知道的大多数 RDBMS 都统一处理所有 B 树页面和所有非树数据页面。有一个用于快速访问的内存缓存,但所有数据也存储在磁盘上。没有理由区分树和非树。此外,在存储数据时,根页面、内部页面和叶页面之间没有区别。

    但这并非必须如此,可以做出不同的选择。

    树根会被特殊对待当然是错误的。它需要与索引内容一样持久,因此它必须存在于磁盘上。如果数据库关闭,将它存储在内存中会丢失索引。

    一些数据库系统支持在数据库启动时从持久数据重建的内存索引。这也是一个有效的设计选择。但这是一种选择,并非必须如此。

    关于sql-server - B+ 树索引究竟存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34214833/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com