首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >精益、平均和快速的键/值数据库选项,以取代基于文件的方法

精益、平均和快速的键/值数据库选项,以取代基于文件的方法
EN

Stack Overflow用户
提问于 2018-04-14 21:32:07
回答 1查看 222关注 0票数 0

我正在修补一个IDE,它使用单独的文件作为键/值存储。每个解析的文件有一个键,包括头文件和每个会话的一个目录(可能包含几个打开的项目),所以一千个左右的条目几乎是最少的(集成开发环境本身的源代码有6900+键)。这些文件是mmap‘的速度,所以实现可能不是真正友好的资源。

这里使用了Qt,因此这些密钥是通过QFile (不频繁地)写入和(频繁地)读取的。键是以随机顺序读取和写入的简单索引号(Uint),值是从几百个字节到几十个Kb的字节数组。

我将其替换为简单的类,该类在QFile应用程序接口的相关部分后面隐藏了一个键/值数据库。我并不期望提高纯性能,而是希望减少代码对文件/资源的需求(包括使用的磁盘空间),同时保持当前的性能水平。

我目前有一个工作的LMDB后端,LevelDB即将完成(但尚未测试)。有没有其他我不得不看的没有一大堆依赖项的呢?例如,我看到有人提到,KyotoCabinet在随机访问方面非常出色。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-04-15 00:04:43

你可以试试RocksDB。它是LevelDB的一个高性能分支,因为LevelDB在过去遇到过一些数据库损坏的问题。Here就是一些例子。它相当容易集成,我在我的Qt项目中使用它。

RocksDB是一个用于键值数据的高性能134嵌入式数据库。它是LevelDB的一个分支,然后进行了优化,以利用许多中央处理单元核心,并有效利用快速存储,如固态驱动器(固态硬盘),用于输入/输出(I/O)限制的工作负载。它基于日志结构的合并树(LSM树)数据结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49831986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档