需要一个可嵌入的NoSQL数据库来处理〜1Gb数据集,并保存在磁盘

问题描述:

我正在构建一个Electron应用程序,为此我需要选择一个可嵌入的NoSQL数据库。事实上,这个数据库应该保存存储在ArangoDB远程后端的本地数据子集。我一直在寻找互联网,但迄今未能融合成最终的候选人。我希望有人能从经验中提醒我。典型的数据集可能达到几万个文档,我可以想象这些集合随着时间的推移会达到〜1Gb的情况。此外,我需要二级索引。需要一个可嵌入的NoSQL数据库来处理〜1Gb数据集,并保存在磁盘

我已经看过PouchDB,UnQlite,LokiJS,性LevelDB,NeDB,LinvoDB ...

最后,NeDB和LinvoDB似乎是合理的候选人持久化到磁盘(SQlite的类),其中NeDB不能处理大型数据集; LinDB是NeDB的一个分支,似乎能够处理这些事情。 LinvoDB不会在内存中加载整个数据库,但似乎默认索引“everything”,并将其保存在内存中。另一方面,我试图关注他们索引的几个对话,NeDB在他们的文档中似乎建议他们将它们保存到磁盘(https://github.com/louischatriot/nedb#indexing),一旦建立,这又会被LinvoDB否认(对不起,我失去了大量标签中的许多引用/来源......),这表明索引将在启动时从头开始构建。 (也可能是我误解了NeDB的文档)。

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

问题:

  1. 有没有人以上或其他嵌入式NoSQL数据库的任何经验,通过任何的这些或其他可能被推荐为我所用呢?
  2. 如果每次启动应用程序时都需要从头开始重新构建LinvoDB的索引,那么这可能会导致性能显着下降(加载时间为几秒)? (当然,我不得不基准这...)
  3. ArangoDB不可嵌入,但也许我应该考虑将其作为服务与我的本机应用程序一起部署?这个链接NoSQL database: ArangoDB似乎表明,开发者本身并不打算这样做。这会是矫枉过正和/或不友好的用户?表现如何?

任何意见,将不胜感激。

考虑过sqlite吗? 有一个npm package它与电子一起工作,我自己尝试过。 你只需要rebuild electron,这可能会造成一些问题。

这里你的答案:

  1. 是的,我有,但不多
  2. 不,我从来没有尝试过LinvoDB
  3. 已经没有我从来没有尝试过ArangoDB
+0

是的我有,但正如标题所示,我正在寻找一个NoSQL数据库,以便我可以存储JSON文档和索引属性。 –

有同样的需要,似乎linvodb3目前是最佳选择。目前正处于积极的发展阶段,目标是致力于Electron桌面环境。

+0

我对LokiJS有很好的体验。非常快速和一些不错的功能! –