python - MongoDb startswith和全文索引问题
PHPz
PHPz 2017-04-18 09:38:12
0
1
803

场景是目前有个Mongo的collection中的name字段,name字段长度正常在4-10个中文左右,25W数据量。如果我用startswith匹配name查询的话性能会有怎样的压力呢?
如果给name字段加上全文索引又会有什么样的好处和坏处呢?

PHPz
PHPz

学习是最好的投资!

全員に返信(1)
刘奇

共通のインデックスがある場合、固定プレフィックスを持つクエリはそのインデックスを使用できます。しかし、あなたが話しているstartswithメソッドが何であるかはわかりません。それがドライバー内にある場合、それはドライバーとそのドキュメントの内容によって異なります。私が参照しているプレフィックスは、^ などの

で始まる正規表現のマッチングです。 リーリー

実行計画を見ると、IX_SCAN:

がわかります。 リーリー

全文インデックスは別のものです。簡単に言えば、プレフィックスが固定であるかどうかを考慮する必要はありませんが、全文インデックスの基本単位は単語ではなく です。したがって、次の段落は次のとおりです:

1部は良い学校です

検索する場合、次のような必要な単語を直接見つけることができます。

リーリー

ただし、「学校」を直接検索しても見つからない場合があります:

リーリー

もちろん、これはさまざまな単語分割エンジンがどのように分割されるかに関係しています。この例は、全文インデックス作成の制限を説明するためのものです。
さらに、冠詞、数量詞、および「性格」など、実際の意味を持たないその他の単語も除外されます:

リーリー

さらに、コレクションにはフルテキスト インデックスが 1 つしか存在できないため、上記のクエリでは name フィールドがまったく言及されていないことにも気づくでしょう。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!