組み込み可能な NoSQL データベースを選択する必要がある Electron アプリを構築しています。実際、このデータベースは、ArangoDB リモート バックエンドに格納されたデータのローカル サブセットを保持することになっています。私はインターネットをたくさん検索してきましたが、これまでのところ最終的な候補に収束していません. どなたか経験からアドバイスいただけると幸いです。
典型的なデータセットはおそらく数万のドキュメントに達し、時間の経過とともにセットが最大 1Gb になるケースを想像できます。さらに、セカンダリ インデックスが必要です。
私は PouchDB、UnQlite、LokiJS、LevelDB、NeDB、LinvoDB を見てきました...
最終的に、NeDB と LinvoDB はディスクへの永続性 (SQlite のような) を備えた合理的な候補のように思えますが、NeDB は大規模なデータセットを処理できません。NeDBのフォークであるLinvoDBが処理できるようです。LinvoDB はデータベース全体をメモリにロードするのではなく、デフォルトで「すべて」にインデックスを付けてメモリに保持するように見えます。
一方、インデックスに関するいくつかの会話に従おうとしましたが、NeDB はドキュメントで、インデックスがディスクに永続化されることを示唆しているようです ( https://github.com/louischatriot/nedb#indexing )。その後も、LinvoDB によって否定されているように見えます (申し訳ありませんが、開いている膨大な量のタブで多くの引用符/ソースを失いました...)、起動時にインデックスをゼロから構築する必要があることを示唆しています。(また、NeDB のドキュメントを完全に誤解している可能性もあります。)
基本的に、私が必要としているのは、Electron アプリ用の JS データベース ソリューションです。これは、「かなりの」量のデータを保持できますが、「大量の」データは保持できません。アプリの読み込み時間は合理的 (つまり、使用を妨げない) であると同時に、応答性が高く (つまり、データベースにセカンダリ インデックスが含まれている必要があります)、ユーザーのリソースを可能な限り尊重する必要があります。
質問:
- 上記または他の組み込み NoSQL データベースを使用した経験がある人はいますか?
- 実際にアプリを起動するたびに LinvoDB のインデックスをゼロから再構築する必要がある場合、それはパフォーマンスに大きな影響を与える可能性があります (数秒の読み込み時間)。(確かに私はこれをベンチマークする必要があります...)
- ArangoDB は組み込み可能ではありませんが、ネイティブ アプリと一緒にサービスとしてデプロイすることを検討する必要があるでしょうか? このリンクNoSQLデータベース:ArangoDBは、開発者自身がこれを思いとどまらせていないことを示唆しているようです。これはやり過ぎですか、ユーザーフレンドリーではありませんか? パフォーマンスヒット?
アドバイスをいただければ幸いです。