これは基本的な質問ですが、非常に重要です。MongoDBキャッシュシステムを理解してください
公式ドキュメントで私達は
のMongoDBはRAMで最近使用したデータのすべてを保持して読むことができます。クエリのインデックスを作成し、作業データセットがRAMに収まる場合、MongoDBはメモリからのすべてのクエリを処理します。あなたは、クエリのインデックスを作成しているし、あなたの作業データセットがRAMに収まる場合
私が理解することを確認していない部分が
ここで「インデックス」をどういう意味
です?
たとえば、私がモデルを更新した場合、私はそれを更新したので、今はRAMに入っているのでメモリから来ますが、これは私の考えではあまり明確ではありません。
質問するデータがメモリから来るかどうかを確認するにはどうすればよいですか?私は、MongoDBが空きメモリを使用して、その時点で無料のメモリに関するデータをキャッシュすることを理解していますが、誰かがさらにグローバルな振る舞いを説明できるでしょうか?
MongoDBキャッシュシステムを信頼するよりもデータを保管するノードサーバーで変数を使用するほうが良いでしょうか?
大量のトラフィックにMongoDBを使用する方法は、どのようにグローバルにアドバイスしていますか?
「それメモリマップ各コレクションページは、」それはVirutalのメモリにコンテンツをマップRAMではない、彼らは2つの異なってものであり、これは人によって、このような一般的な間違いである、MongoDBはありますインメモリデータベースではありません! – Sammaye
@Sammayeそれは仮想アドレスか物理アドレスかに関係なく、メモリアドレスにマップされます。アウトオブコアアドレスが参照されると、ページフォルトが発生し、そのディスクページが物理メモリに移動されます。 MongoDBは、あなたのサーバが持っているすべての物理メモリをかなり吸い取ってしまいます(OS自体や他のプロセスのために少しだけ予約しています)。 MongoDBを実行するには、利用可能な物理メモリがデータベースサイズを超えている必要があります。 – Curt
OSが許可するので、メモリを吸います。しかし作業セットがRAMにロードされるのは、あなたの作業セットが小さければMongoDBは実際にはデータサイズよりもはるかに小さい少量しか使用しません。 – Sammaye