2017-08-04 9 views
0

NeDBはディスクを使用してクエリを検索しますか?NeDBはディスクを使用してクエリを検索しますか?

または、検索クエリはRAMベースのデータ構造を使用して100%です。

検索クエリを使用して集中的に作業する必要があり、ハードディスクに作業を入れたくありません。

(ボーナストラックとして、SQLiteのクエリはメモリにも100%の仕事を見つけるのですか?)

答えて

0

はあなたがフィールドにインデックスを作成する場合、これらのフィールドは、より高速検索とアクセスのためにメモリに保持されますが、依存します。索引付けされていないフィールドの参照はディスクを叩くことになります。これは、SQLiteだけでなく、ほとんどの他の永続データベース(PostgreSQL、MySQL、MongoDBなど)にも当てはまります。

NeDBはすべてのデータがメモリ内に保持されることを意味しますレディス)。つまり、検索の高速化のためにフィールドをインデックス化する必要があります。

NeDBのフィールドにインデックスを作成する場合は、そのドキュメントにはhereがあります。 NeDBについては

あなたはそのフィールドのインデックスを作成する必要はありませんし、_idを照会することは別のインデックス付けされていないフィールドを照会するよりもかなり高速になりますので、_idフィールドが自動的に、をインデックスされます。

+0

メモリに保持されている場合、特定のフィールドを使用してドキュメントを検索する場合、インデックスを作成する必要があるのはなぜですか?そこにディスクを使用するのにはちょっと必要ないと聞きました –

+0

また、データベースfile.dbを削除して(メモリにロードしてから)、いくつかの検索操作を実行しました。だから、クエリがディスクにアクセスする必要があると思われたり、間違っているようですね? –

+0

NeDBのインデックスは、バイナリ検索ツリーと呼ばれるデータ構造を効率的に検索するために効率的に使用されます。起動時に、NeDBは 'file.db'全体をメモリにロードします。なぜなら、' file.db'を削除しても、データを扱うことができるからです。 – Svenskunganka

関連する問題