需要一个可嵌入的NoSQL数据库,处理~1Gb的数据集,持久化在磁盘上



我正在构建一个电子应用程序,为此我需要选择一个可嵌入的NoSQL数据库。实际上,该数据库应该保存存储在ArangoDB远程后端上的数据的本地子集。我在网上搜索了很多,但到目前为止还没有找到一个最终的候选人。我希望有人能给我一些经验之谈。

典型的数据集可能有~数万个文档,我可以想象,随着时间的推移,该集将达到~1Gb。此外,我还需要二级索引。

我看过PouchDB, UnQlite, LokiJS, LevelDB, NeDB, lindb…

最后,NeDB和lindbb似乎是具有磁盘持久性(类似sqlite)的合理候选者,NeDB无法处理大型数据集;而lindb (NeDB的一个分支)似乎能够处理这些问题。LinvoDB不会在内存中加载整个数据库,但默认情况下似乎会索引"所有内容"并将其保存在内存中。

另一方面,我试图遵循关于他们的索引的几个对话,NeDB似乎在他们的文档中建议他们被持久化到磁盘(https://github.com/louischatriot/nedb#indexing),一旦构建,这似乎再次被lindbb否定(对不起,我在大量打开的选项卡中丢失了许多引用/来源…),建议索引要从头开始构建。(也可能是我完全误解了NeDB的文档。)

基本上,我需要的是一个电子应用程序的JS数据库解决方案,它可能包含"相当大"但不是"巨大"的数据量。应用程序的加载时间应该合理(即,不妨碍使用),同时响应(即,数据库应包含二级索引)并尽可能尊重用户的资源。

问题:

  1. 有没有人有以上或其他嵌入式NoSQL数据库的经验,其中任何一个或其他可以推荐给我的用例?
  2. 如果确实LinvoDB的索引需要从头开始重建,每次我启动应用程序,这可能是一个显著的性能打击(加载时间的顺序秒)?(当然我必须对这个进行基准测试…)
  3. ArangoDB是不可嵌入的,但也许我应该考虑只是部署它作为一个服务旁边我的本地应用程序?这个链接NoSQL数据库:ArangoDB似乎表明开发人员自己并不反对这样做。这样做会不会太过分,或者对用户不友好?性能受到影响?

任何建议都将非常感激。

有同样的需求,似乎linodb3是目前最好的选择。

考虑过sqlite吗?有一个npm包,它与电子一起工作,我自己试过了。你只需要重建电子,这可能会产生一些问题。

这是你的答案:

    有,但不多
  1. 不,我从来没有尝试过LinvoDB
  2. 不,我从来没有尝试过ArangoDB

相关内容

  • 没有找到相关文章

最新更新