MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBでレコード検索に時間がかかりすぎる場合の対処法:インデックス作成の基本

MongoDBでレコードの検索に時間がかかりすぎる場合、最も効果的な対策はインデックス(index)を作成することです。インデックスを利用することで、コレクション全体をスキャンすることなく、目的のドキュメントへ素早くアクセスできるようになります。

インデックス作成の基本構文は以下の通りです。

db.yourCollectionName.createIndex({yourFieldName:1});

フィールドの種類や用途に応じて、数値(昇順・降順)、テキスト、ハッシュなど、さまざまな形式のインデックスを作成できます。以下に代表的な3つの方法を紹介します。

方法1:昇順インデックスを作成する

まずは最も基本的な昇順インデックスの作成例です。以下のクエリを実行します。

> db.takeLessTimeToSearchDemo.createIndex({"EmployeeName":1});
{
    "createdCollectionAutomatically" : true,
    "numIndexesBefore" : 1,
    "numIndexesAfter" : 2,
    "ok" : 1
}

「EmployeeName」フィールドに対して昇順(1)のインデックスが作成されました。実行結果を見ると、インデックス数が1から2に増えていることが確認できます。

方法2:テキストインデックスを作成する

文字列検索を高速化したい場合には、テキストインデックスが有効です。次のように作成します。

> db.takeLessTimeToSearchDemo1.createIndex({"EmployeeName":"text"});
{
    "createdCollectionAutomatically" : true,
    "numIndexesBefore" : 1,
    "numIndexesAfter" : 2,
    "ok" : 1
}

「text」を指定することで、テキスト検索に最適化されたインデックスが作成されます。

方法3:ハッシュドインデックスを作成する

ハッシュベースの検索やシャーディングを想定している場合は、ハッシュドインデックスを利用しましょう。

> db.takeLessTimeToSearchDemo2.createIndex({"EmployeeName":"hashed"});
{
    "createdCollectionAutomatically" : true,
    "numIndexesBefore" : 1,
    "numIndexesAfter" : 2,
    "ok" : 1
}

「hashed」を指定すると、フィールド値のハッシュ値に基づいたインデックスが作成されます。等価一致検索において特に高いパフォーマンスを発揮します。

まとめ

MongoDBの検索パフォーマンスが低下した場合は、クエリで使用しているフィールドに適切なインデックスを作成することが重要です。用途に応じて昇順インデックス、テキストインデックス、ハッシュドインデックスを使い分けることで、レコード検索にかかる時間を大幅に短縮できます。

  1. Windows 10でロック画面からログイン画面への切り替えが遅いときの対処法5選

    Windows 10のPCで、ロック画面からログイン画面へ移行する際に時間がかかることがあります。この「ロック画面からログイン画面への遅延」問題は、以下の方法を試すことで改善できる可能性があります。 ロック画面の背景画像を無効にする ログイン画面の背景画像を無効にする Windowsスポットライトを無効にする ロック画面を完全に無効にする クリーンブート状態でトラブルシューティングを行う ロック画面からログイン画面への読み込みが遅い原因と対策 それでは、それぞれの対処法を詳しく見ていきましょう。 1. ロック画面の背景画像を無効にする Windows 10の「設定」を開く 「個人用設定」

  2. Windows 10でロック画面からログイン画面への切り替えが遅いときの対処法

    Windows 10のPCで、ロック画面からログイン画面へ移行する際に時間がかかる(遅延が発生する)場合、以下の対処法を試すことで問題を解決できる可能性があります。 ロック画面の背景画像を無効にする ログイン画面の背景画像を無効にする Windows スポットライトを無効にする ロック画面自体を完全に無効にする クリーンブート状態でトラブルシューティングを行う ロック画面からログイン画面への読み込みが遅い原因と対策 それでは、それぞれの対処方法を詳しく見ていきましょう。 1. ロック画面の背景画像を無効にする まずは、ロック画面の背景画像をオフにしてみましょう。手順は以下の通りです。 W