- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在看这个video在 B+ 树基础上,他提到 B+ 树的叶子存储在磁盘上,除了 root
存储在 main memory
.我在类里面的教授提到索引存储在main memory
中。 , 和 leaves
包含指向磁盘的数据指针。
见下图:
我的问题是所有索引都存储在哪里?
最佳答案
你被告知在很多方面都是垃圾。
为了让 B 树索引正常工作,没有预先设计的方案需要存储什么。 RDBMS 可以自由决定在哪里存储什么类型的数据。
我所知道的大多数 RDBMS 都统一处理所有 B 树页面和所有非树数据页面。有一个用于快速访问的内存缓存,但所有数据也存储在磁盘上。没有理由区分树和非树。此外,在存储数据时,根页面、内部页面和叶页面之间没有区别。
但这并非必须如此,可以做出不同的选择。
树根会被特殊对待当然是错误的。它需要与索引内容一样持久,因此它必须存在于磁盘上。如果数据库关闭,将它存储在内存中会丢失索引。
一些数据库系统支持在数据库启动时从持久数据重建的内存索引。这也是一个有效的设计选择。但这是一种选择,并非必须如此。
关于sql-server - B+ 树索引究竟存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34214833/
Feel free to skip straight to TL/DR if you're not interested in details of the question 简短的序言: 我最近决定
我一直在阅读 A Tour of Go学习Go-Lang到目前为止一切顺利。 我目前在 Struct Fields类(class),这是右侧的示例代码: package main import "fm
Last time I got confused顺便说一下PowerShell急切地展开集合,基思总结了它的启发式如下: Putting the results (an array) within a
我是一名优秀的程序员,十分优秀!