この記事では、mongodb に関する関連知識と MongoDB のストレージ エンジンについて紹介します。
前回は、マスター/スレーブ クラスターとシャード クラスターに分割される mongodb クラスターについて説明しました。シャード クラスター内のシャードについては、必要なものは次のとおりです。次の点に注意してください。一緒に確認しましょう。
特定の シャード キー (シャード シャード キーは、コレクション内の各ドキュメントに存在するインデックス フィールドまたは複合インデックス フィールドです) により、すべての 読み取りまたは書き込みリクエスト が単一のデータ ブロックまたはシャード上で動作します。負荷が重すぎると、自己増加するシャード キーによって書き込みの問題が発生しやすくなります [推奨事項: MongoDB ビデオ チュートリアル ]
粗粒度のシャーディング キーの場合、 により同じシャーディング キーを使用する多くのドキュメントが作成される可能性があります
この場合、これらのドキュメントは複数のデータ ブロックに分割することはできません。これにより、データを均等に分散する mongodb の機能が制限されます
シャーディング キーとクエリに相関がない クエリのパフォーマンスが低下する
上記の点については注意が必要ですが、実際の業務で同様の問題が発生した場合は、対処方法を学ぶことができます。それら
今日は、mongodb のストレージ エンジンとは何ですか
Mongodb のストレージ エンジンについて簡単に説明します。 mongodb、それが mongodb 3.0 にあることを知っておく必要があります。当時、プラガブル ストレージ エンジン の概念が導入されました。
現在、主に次のエンジンがあります:
MMAPV1 エンジンは使用されていません
WiredTiger ストレージ エンジンの方が優れているためです。たとえば、WiredTiger と比較すると、次の利点があります。
WiredTiger# MMAPV1 エンジンはテーブル レベルのロックを使用します。単一のテーブルで同時操作がある場合、スループットは影響を受けます。制限事項
WiredTiger はドキュメント レベルのロックを使用するため、同時実行性とスループットが向上しますWiredTiger
優れた圧縮圧縮アルゴリズムを提供します
これにより、ハードディスクへの影響を大幅に軽減できます。リソース消費WiredTiger エンジンの作成原理
次のことができます。上の図から、WiredTiger の ディスクへの書き込み原理も非常に単純であることがわかります。
アプリケーション リクエストが mongodb に届き、mongodb がそれを処理し、結果をキャッシュに保存します。
##上の図に示すように、追加の ジャーナリング バッファ と
ジャーナル ファイルジャーナリングがあります。バッファ
mongodbの追加、削除、変更命令を格納するバッファ
ジャーナリングのログ関数は、redis の aof 永続性と少し似ています。似ているとしか言えません
mongodb 2.4 では、ジャーナリング ログ関数はデフォルトで有効になっています、mongod インスタンスを開始すると、サービスはデータを復元する必要があるかどうかをチェックします
そのため、上記の mongodb データ損失は発生しませんさらに、ここで知っておく必要があるのは、ジャーナリングのロギング関数は、mongodb が書き込み操作を実行する必要があるとき、つまり追加、削除、または変更を行うときに、パフォーマンスに影響するログを書き込むことです。
ただし、mongodb は読み取り操作をキャッシュに記録しません したがって、ジャーナリング ログには記録されないため、読み取り操作は影響しません
つまり今日はこれで終わります。私が学んだこと、逸脱がある場合は修正してください
以上がMongoDB ストレージ エンジンの詳細な分析 (概略図付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。