簡體   English   中英

MongoDB 索引不起作用(100 萬條記錄)

[英]MongoDB indexing not working (1 million records)

遠程服務器配置: Ubuntu 20.04 on Digital ocean (1vcpu, 1GM Ram, 25GB memory) MongoDb running on Digital Ocean 機器

本地機器: MacOS,Dockerized Nodejs express server(從這里我正在搜索我的收藏)

我在我的數據庫中創建了 2 個 collections,一個被索引(PartnerModelIndex),另一個沒有(PartnerModel)。

  • 見圖片:

在此處輸入圖像描述

我在我的 NodeJS 上創建了 2 個 API 路由 - 只有其中一個通過索引集合搜索:

在此處輸入圖像描述

我還用以下參數填充了我的 collections 1.000.000(百萬)個文檔:

  • 標題- 大約 20-30 個字(每個文檔)
  • 描述- 大約有 5k - 6k 個字符(每個文檔)

在此處輸入圖像描述

這是我的 MongoDB 羅盤,按索引顯示占用的 memory:

問題是,當我嘗試在數據庫中搜索任何不存在的字符串(通過標題和描述)時,索引和非索引集合的執行時間相同,請參見圖片

在此處輸入圖像描述

和非索引:

在此處輸入圖像描述

這種奇怪行為的原因可能是什么? 先感謝您!

在評估 $or 表達式中的子句時,MongoDB 執行集合掃描,或者,如果索引支持所有子句,則 MongoDB 執行索引掃描。 也就是說,為了讓 MongoDB 使用索引來評估 $or 表達式,$or 表達式中的所有子句都必須由索引支持。 否則,MongoDB 將執行收集掃描。

參考: https://www.mongodb.com/community/forums/t/why-is-mongodb-not-taking-an-existing-unique-compound-index-for-an-or-query/103229

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM