返回信息流我们知道,MySQL的存储引擎使用B+树。以MyISAM为例,索引和数据是分开存储,这里我没想明白的问题有两个:
1. 那棵B+树在内存当中构建好了之后,怎么保存到磁盘呢?怎么直接保存为一个文件呢?
2. B+树Data域保存的是记录的地址,但是记录是保存在磁盘里的,这个地址是个什么含义呢?我理解其中一种可能是,所有记录保存在一个大文件里,这里的地址是记录的偏移量。但我不确定。
不知道有没有人可以指教一下。
这是一条镜像帖。来源:北邮人论坛 / database / #10646同步于 2017/10/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
B树/B+是如何保存到磁盘
dljtgqm
2017/10/31镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
我觉得数据本身应该通过文件系统(操作系统提供)来进行存储,B+树本身也通过文件系统存储,只不过存放B+树的文件,里面的数据结构(比如说B+树的节点)存放着真实数据的地址,这个地址只要能够索引到数据的地址即可(比如文件绝对路径+偏移量)