Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

ハッシュされたシャードキーインデックスの削除

項目一覧

  • このタスクについて
  • 手順
  • 詳細

MongoDB 5.0.22 以降、 ハッシュされたシャードキーのインデックスを削除できます。

これにより、ハッシュされたシャードキーでシャーディングされたコレクションのデータ挿入を高速化できます。 mongosyncを使用すると、データの取り込みを高速化することもできます。

不要なインデックスを削除すると、CRUD 操作が高速化されます。 各 CRUD 操作では、ドキュメントに関連するすべてのインデックスを更新する必要があります。 1 つのインデックスを削除すると、すべての CRUD 操作が高速化されます。

ハッシュされたシャードキー インデックスを削除すると、サーバーはそのコレクションのバランシングを無効にし、コレクションを今後のバランシング ラウンドから除外します。 コレクションをバランシング ラウンドに再度含めるには、シャードキー インデックスを再作成する必要があります。

重要

シャードキーでハッシュされていないインデックスをサポートしている場合にのみ、コレクションからハッシュされたシャードキーハッシュされたシャードキーインデックスを削除する必要があります。 サポートされている非ハッシュインデックスが シャードキー に存在しない場合、シャードキーシャードキーでフィルタリングするクエリは コレクションスキャンを実行します。コレクションに存在するインデックスを確認するには、db.collection.getIndexes() を使用します。

1

以下のコマンドを実行して、バランサーを停止します。

sh.stopBalancer()

sh.stopBalancer()ではmongos のみを実行できます。sh.stopBalancer()mongodで実行するとエラーが発生します。

2

警告

Skipping this step causes $collStats to report an incorrect orphaned document count and affects balancing operations if the index is re-added.

Run the following command on the primary mongod for every shard on the cluster:

db.runCommand(
{
cleanupOrphaned: "<database>.<collection>"
}
)

cleanupOrphaned は、 1または0のいずれかを返します。

1の値は、次のいずれかであることを示します。

  • シャード上のcleanupOrphaned名前空間に孤立したドキュメントは残りません

  • cleanupOrphaned名前空間で参照されるコレクションはシャーディングされていない

0の値はエラーが発生したことを示します。

Repeat this step on each primary mongod in the cluster.

3

以下のコマンドを実行して、インデックスを削除します。

db.collection.dropIndex("<index name>")
4

以下のコマンドを実行して、クラスター上のバランサーを再起動します。

sh.startBalancer()

戻る

ジャンボフラグのクリア