ホームページ  >  記事  >  バックエンド開発  >  Mongo インデックスに関する注意事項

Mongo インデックスに関する注意事項

不言
不言オリジナル
2018-07-09 10:11:221836ブラウズ

この記事では主に、特定の参照値を持つ Mongo インデックスに関するいくつかの手順を紹介します。ここで共有します。必要な友人は参照してください。

インデックスの使用シナリオ

利点:クエリを高速化します。

欠点: 追加、削除、変更により追加のオーバーヘッドが発生し、スペースが占有されます。

ヒント: コレクション内のデータの半分以上が返され、テーブル全体がスキャンされます。より効率的です

インデックスの基本

基本操作

インデックスの表示: db.test.getIndexes()

インデックスの作成: db.test.ensureIndex({" username":1},{"background":true,"name":"index_test_name"}) //データ量が多い場合、ブロックせずにバックグラウンドで実行可能

インデックスを削除します: db.test.dropIndex({ "username":1})

インデックス サイズを表示します: db.test.totalIndexSize()

# #属性

インデックスの順序:

1は正の順序、-1は逆の順序です

複合インデックスでは、順序に注意する必要があります( id:1、age:-1)

インデックス属性:

  • 一意性

db.test.ensureIndex({x:1,y:1},{unique:true})
  • スパースネス

db.test.ensureIndexx({},{sparse:true/false})
不稀疏(默认):
1. 可插入不存在索引字段的数据,null; 
2. 可筛选不存在字段: db.test.find({m:{$exist:ture}})
稀疏:

最適化分析方法

  • 説明

    システムがリクエストを処理する方法を学ぶ

cursor  返回游标类型(BasicCursor或BtreeCursor)
nscanned  被扫描的文档数量
n 返回的文档数
millis  耗时(毫秒)
indexBounds  所使用的索引
  • ヒント

    インデックスの使用を強制する

db.test.find({"age":20}).hint({"name":1,"age":1}) // .hint(name_1_age_1)
  • プロファイル

    ログ レベルを設定し、遅いクエリを記録する

##ヒント

    クエリの順序を自動的に調整する条件
  1. プレフィックス正規表現 (/^z /) のインデックスにヒットできる
  2. 大量のデータを必要とするキーのインデックスを作成するすべてのデータがメモリにロードされるのを避けるために並べ替えます
  3. $ne、$nin はインデックスを使用しません
  4. インデックス タイプ

    _id インデックス
  • 単一キー インデックス
  • マルチキー インデックス
  • 複合インデックス
  • 期限切れインデックス
  • 全文インデックス
  • 地理的位置インデックス
  • 以上がこの記事の全内容です。皆様の学習に少しでもお役に立てれば幸いです。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

Swoole メモリ操作の概要 (表)WordPress 画像アドレスを変更する方法相対パス

以上がMongo インデックスに関する注意事項の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。