MongoDB 5.0.22 以降、 ハッシュされたシャードキーのインデックスを削除できます。
これにより、ハッシュされたシャードキーでシャーディングされたコレクションのデータ挿入を高速化できます。 mongosyncを使用すると、データの取り込みを高速化することもできます。
このタスクについて
不要なインデックスを削除すると、CRUD 操作が高速化されます。 各 CRUD 操作では、ドキュメントに関連するすべてのインデックスを更新する必要があります。 1 つのインデックスを削除すると、すべての CRUD 操作が高速化されます。
ハッシュされたシャードキー インデックスを削除すると、サーバーはそのコレクションのバランシングを無効にし、コレクションを今後のバランシング ラウンドから除外します。 コレクションをバランシング ラウンドに再度含めるには、シャードキー インデックスを再作成する必要があります。
重要
シャードキーでハッシュされていないインデックスをサポートしている場合にのみ、コレクションからハッシュされたシャードキーハッシュされたシャードキーインデックスを削除する必要があります。 サポートされている非ハッシュインデックスが シャードキー に存在しない場合、シャードキーシャードキーでフィルタリングするクエリは コレクションスキャンを実行します。コレクションに存在するインデックスを確認するには、db.collection.getIndexes() を使用します。
手順
コレクション内に孤立したドキュメントがないことを確認する
警告
この手順をスキップすると、$collStats は誤った孤立したドキュメント数を報告し、インデックスが再追加された場合のバランシング操作に影響します。
mongodクラスター上のすべてのシャードのプライマリ で次のコマンドを実行します。
db.runCommand( { cleanupOrphaned: "<database>.<collection>" } )
cleanupOrphaned は、 1または0のいずれかを返します。
1の値は、次のいずれかであることを示します。
シャード上の
cleanupOrphaned名前空間に孤立したドキュメントは残りませんcleanupOrphaned名前空間で参照されるコレクションはシャーディングされていない
0の値はエラーが発生したことを示します。
クラスター内の各プライマリ でこのステップを繰り返します。mongod