我正在为我的简历编写自己的数据库,并且出于对其他数据库的所有复杂性的沮丧(我的只有 4 个操作:推送、拉动、拖放和查找(。它是一个键值存储,它对键进行哈希处理,然后生成一个文件夹树来存储文件。
假设我将 {"Bob": {"password":"Duck"}} 推送到我的数据库。假设 Bob 的 SHA 哈希值为:AABBCCDD
Bob 存储在文件 DD 的 AA/BB/CC/目录中。
我这样做是为了不断访问数据库文件不会损坏整个数据库。问题是,我现在担心速度。
我想查看其他数据库的存储技术,但实际上找不到它们的规格。我能找到的只是他们的数据库的优势,如MongoDB,它可以压缩数据并将其存储在BSON中。每当我在谷歌上搜索规格时,通常都会出现这种情况。
除了源代码之外,我是否可以实际阅读一些东西来说明数据如何保存到数据库中的硬盘驱动器?
对于SQLite,您标记的唯一RDBM然后数据库文件格式可以在这里找到 数据库文件格式
这里有一些关于文件访问可能会感兴趣 如何损坏SQLite数据库文件,也在这里 预写日志记录
但是,归根结底,除了文件的写入方式之外,还有许多因素会影响性能,例如底层文件系统,存储设备,索引,缓存(也许请参阅PRAGMA语句(,事务的使用,查询优化 SQLite 查询优化器概述和查询规划