- 主题:为什么用B+而不是B树?
数据库存在磁盘上,记录在文件内是需要排序的吗?
如果是排序的,那么删除和插入过程是不是会留下很多空穴?这个有什么好办法处理?
【 在 Knightmare 的大作中提到: 】
:
: 因为B+树更适合结构化数据在磁盘上的存储呗
:
: B+树数据都存在叶节点上,对非单点查询更优化,排序和统计都更快。
:
#发自zSMTH@时光音乐会
--
FROM 221.222.21.*
哪里有介绍这个详细实现过程的?我想实现一个高性能键值数据库
【 在 Knightmare @ [Database] 的大作中提到: 】
:
: B+树索引的办法就是删的时候只是写个标志。
: 插入的过程是通过在每个块留一定的空间,空间足够的时候没问题,不够的时候就进行块分裂。
:
: 【 在 xieyf 的大作中提到: 】
#发自zSMTH@时光音乐会
--
FROM 120.244.224.*
剪裁起来太费劲,而且我要存几gb的这种blob,还要支持连续存储
【 在 SankHeart @ [Database] 的大作中提到: 】
:
: 有现成开源的,它不香吗?干嘛要自己搞
: 【 在 xieyf 的大作中提到: 】
: : 哪里有介绍这个详细实现过程的?我想实现一个高性能键值数据库
: : #发自zSMTH@时光音乐会
#发自zSMTH@时光音乐会
--
FROM 221.222.20.*
兄弟你解决了我心中好几个月的疑问。
那有什么kv数据库值得剪裁的?
初步想了一下,Berkeley db(我最早用的), level db(这个估计得重新设计存储系统)
其他的就不熟悉了
sqlite3用着觉得很好,也研究过,不过它的页面设计,好像不支持连续存储,因为每个页头上都必须有链表指针数据。
支持连续存储是为了支持并行读写,但是我也在想,如果要支持mpi那种并行读写,连续存储是不是有必要。
【 在 ylh0315 的大作中提到: 】
: 数据文件与索引文件是分离的。
: 一个数据文件可以有很多索引文件。每个索引文件的节点没有数据,只有数据指针。
: 数据在文件中基本是无序的。
: ...................
--
FROM 120.244.224.*