专门用于小型数据且几乎没有写入的嵌入式数据库?

Posted

技术标签:

【中文标题】专门用于小型数据且几乎没有写入的嵌入式数据库?【英文标题】:Embedded database specialized for tiny size data & almost no writes? 【发布时间】:2012-03-29 06:17:15 【问题描述】:

我正在寻找一个轻量级的嵌入式数据库来存储(并且很少修改)Java 应用程序(主要是 android 以及其他平台)中的几千字节数据(5kb 到 100kb)。

预期特征:

阅读速度快,但写作速度不一定快 几乎没有大小开销(即使没有数据也使用千字节),但不一定非常紧凑(每千字节实际数据使用千字节) 非常小的数据库客户端库 JAR 文件大小 开源

问题:是否有专门针对这些小案例的数据库格式? 基于文本的解决方案也可以接受。

如果相关:它将是this kind of data。

【问题讨论】:

【参考方案1】:

将其填充到一个对象中并将其序列化到一个文件中。在保存时写入新文件,将其重命名在旧文件之上以“提交”它,这样您就不必担心如果写入失败会损坏它。没有数据库,什么都没有。很简单。

【讨论】:

【参考方案2】:

如果您可以使用平面(文本)文件,则可以将文件保存在磁盘上并读取/查找。永远不要一次读完。如果你需要例如更快的索引,也许您可​​以构建索引和记录号,并使用索引找到正确的“行”并使用记录号从恒定大小的字段数据库中获取其余数据或作为行号文本文件。

我不知道这个 Java 和那个静态初始化程序消息,但这听起来像是代码大小限制,而不是数据?为什么运行时数据会影响字节码?

无法推荐特定的库。也许周围有一些 Berkeley DB、DSV 或 xBase 样式库。

【讨论】:

您对代码大小限制是正确的,我错了,谢谢!

以上是关于专门用于小型数据且几乎没有写入的嵌入式数据库?的主要内容,如果未能解决你的问题,请参考以下文章

用于嵌入式系统的小型 libc [关闭]

2014025640《嵌入式系统程序设计》第七周学习总结

SQLite 常用性能优化配置

c_cpp 用于嵌入式程序的小型RingQueue(例如Arduino,AVR,mbed等。

如何在 Java 应用程序中设置 H2 嵌入式数据库以在小型网络中使用?

SQLite数据库入门