database - 如何在不涉足源代码的情况下找到数据库存储格式规范?
问题描述
我正在为我的简历编写自己的数据库,并且对其他数据库的所有复杂性感到沮丧(我的只有 4 个操作:push、pull、drop 和 find)。它是一个键值存储,它对键进行哈希处理,然后生成一个文件夹树来存储文件。
假设我将 {"Bob": {"password":"Duck"}} 推送到我的数据库。假设 Bob 的 SHA 哈希是:AABBCCDD
Bob 存储在 AA/BB/CC/ 目录中的文件 DD 中。
我这样做是为了不断访问数据库文件不会破坏整个数据库。问题是,我现在担心速度。
我想回顾一下其他数据库的存储技术,但找不到它们的规范。我能找到的只是他们的数据库的优势,比如 MongoDB,它可以压缩数据并将其存储在 BSON 中。每当我在 Google 上搜索规格时,通常都会出现这种情况。
除了源代码之外,还有什么我可以真正阅读的东西,它告诉我如何将数据保存到数据库中的硬盘驱动器中?
解决方案
对于 SQLite,您标记的唯一 RDBM 然后数据库文件格式可以在这里找到数据库文件格式
这里有一些关于文件访问的内容可能很有趣How To Corrupt An SQLite Database File和这里 Write-Ahead Logging
但是归根结底,除了文件的写入方式之外,还有许多因素会影响性能,例如底层文件系统、存储设备、索引、缓存(可能参见PRAGMA 语句)、事务的使用、查询优化SQLite 查询优化器概述和查询计划
推荐阅读
- r - 请参阅更新的 UI 输入 ID 和在 Shiny 中计算总和
- php - 如何使用 flexsearch 进行自动完成搜索
- google-sheets - 如何条件格式合并和常规单元格
- docker-compose - ldap 客户端容器适用于 docker run 但不适用于 docker-compose 或 docker-stack
- c - 在 C 中打印带有字符串的数组
- python - 如何修复 PySNMP WrongValueError
- django - 我无法保存 Facebook 帐户中的图片链接
- terraform - Terraform AWS 提供商 V2?
- azure - Azure ExpressRoute 安全性
- google-data-studio - Google 数据洞察未能解析 CASE 语句