典型的数据集可能达到数万个文档,我可以想象这个集合随着时间的推移会达到~1Gb的情况.此外,我需要二级索引.
我看过PouchDB,UnQlite,LokiJS,LevelDB,NeDB,LinvoDB ……
最后,NeDB和LinvoDB似乎是合理的候选者,具有持久性到磁盘(类似sqlite),其中NeDB无法处理大型数据集; LinDBDB(NeDB的一个分支)似乎能够处理的东西. LinvoDB不会将整个数据库加载到内存中,但默认情况下会将“所有内容”编入索引,并将其保留在内存中.
另一方面,我试图跟踪几个关于他们的索引的对话,其中NeDB似乎在他们的文档中建议他们被保存到磁盘(https://github.com/louischatriot/nedb#indexing),一旦构建,然后再次被LinvoDB否定(对不起,我丢失了大量选项卡中的许多引用/来源…),建议索引在发布时从头开始构建. (也可能是我误解了NeDB的文档.)
基本上,我需要的是一个针对Electron应用程序的JS数据库解决方案,它可能包含“可观的”但不是“巨大的”数据量.应用程序的加载时间应该是合理的(即,不阻止使用),同时响应(即,数据库应包含二级索引)并尽可能地尊重用户的资源.
问题:
>有没有人对上述或其他嵌入式Nosql数据库有任何经验,通过这些数据库可以推荐这些或其他任何数据库用于我的用例?
>如果确实每次启动应用程序时都需要从头开始重建LinvoDB的索引,那么这可能是一个重要的性能损失(加载时间为几秒)? (当然我必须对此进行基准测试…)
> ArangoDB不可嵌入,但也许我应该考虑将其作为服务与我的原生应用程序一起部署?此链接NoSQL database: ArangoDB似乎表明开发人员自己不会劝阻这一点.这会是矫枉过正和/或用户友好吗?表现受到了打击?
任何建议真的很感激.