簡體   English   中英

Mongodb花費太多時間查找記錄

[英]Mongodb taking too much time to find the record

我在本地主機上有mongodb,在數據庫中我有9000萬條記錄。 當我通過db.emails.find({"name":"example"})搜索任何記錄時,獲取結果的時間太長。 有什么辦法可以提高mongodb的速度嗎?

name字段創建索引

db.emails.createIndex( { name: 1} )

如果您沒有字段索引,則mongodb必須在執行查詢時執行集合掃描 ,即掃描集合中的每個文檔以檢查與查詢匹配的name字段的值。 另一方面,該索引僅存儲可以快速檢查的name字段的有序值。

索引鍵有限制。 索引條目的總大小必須小於1024個字節。 但是,如果要搜索有關字符串內容的查詢,可以使用文本索引:

db.emails.createIndex( { name: "text"} )

另外,如果要搜索完全匹配,則可以使用哈希索引:

db.emails.createIndex( { name: "hashed" })

通常,為了加速mongodb查詢,可以做的是准備一個組合索引。

在您的情況下,由於它是電子郵件地址,因此我建議您將郵件作為id並使用不區分大小寫的正則表達式執行搜索。 例如,如果您希望所有人都擁有gmail帳戶,則可以執行如下搜索

db.users.find({_id:/@gmail.com/})

我相信這將大大加快您的代碼

暫無
暫無

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

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