我在本地主機上有mongodb,在數據庫中我有9000萬條記錄。當我通過db.emails.find({"name":"example"})
搜索任何記錄時,獲取結果花費的時間太長。有什麼辦法可以提高mongodb的速度嗎?Mongodb花費太多時間來查找記錄
2
A
回答
3
爲name
場創建index
db.emails.createIndex({ name: 1})
如果你沒有爲字段索引,那麼必須mongodb的執行查詢時,執行收集掃描,即掃描收集每一份文件,以檢查的name
值字段匹配您的查詢。該指數在其他手商店只有訂購的價值name
字段,可以快速檢查。
索引鍵有限制。索引條目的總大小必須小於1024字節。但是你可以使用文本索引,如果你想搜索查詢的字符串內容:如果你要搜索精確匹配
db.emails.createIndex({ name: "text"})
而且,那麼你可以使用散列索引:
0
通常用來加快mongodb查詢,可以做的是準備一個組合索引。
就你而言,因爲它是電子郵件地址,所以我建議你要做的是將郵件作爲id並使用不區分大小寫的正則表達式執行搜索。例如,如果你想讓每個人都擁有Gmail賬戶,你可以執行像
db.users.find({_id:/@gmail.com/})
搜索,我相信這會加速你的代碼很多
相關問題
- 1. JRebel花費太多時間來更新
- 2. WebRequest.GetResponse()花費太多時間
- 3. MongoDB bulk.execute()花費太多的時間來插入無序
- 4. 查詢花費太多時間
- 5. Powershell:WMI查詢花費太多時間
- 6. Db2查詢花費的時間太多
- 7. 流星js:頁面花費太多的時間來查詢與mongodb,如果記錄是100000左右
- 8. 列表花費的時間太多
- 9. Laravel Load View花費太多時間
- 10. While循環花費太多時間
- 11. Tomcat花費太多時間啓動
- 12. valueInjecter正在花費太多時間
- 13. Java applet花費太多時間加載
- 14. Webpack構建花費太多時間
- 15. 刪除語句花費太多時間
- 16. SQL查詢花費太長時間
- 17. 查詢花費太長時間
- 18. SQL查詢花費的時間太長
- 19. :app:transformClassesAndResourcesWithProguardForRelease花費太長時間
- 20. ViewResult.ExecuteResult花費太長時間
- 21. RegExp在檢查emailid時花費太多
- 22. MySQL:幫助查找花費太長時間執行的查詢
- 23. Mongodb查詢花費時間過長
- 24. MongoDB記錄太多?
- 25. 當我使用rownum時Oracle查詢花費太多時間
- 26. IPhone IOS:PHP腳本需要花費太多時間來執行?
- 27. 花費太多時間來預先加載資產?
- 28. 視圖部分花費太多時間來加載
- 29. 如何在Scala中花費太多時間來終止函數?
- 30. android hello world program需要花費太多時間來運行
我使用同樣的功能careated指數,得到這個錯誤 { 「ok」:0, 「errmsg」:「WiredTigerIndex :: insert:key too large to index,failed 5452 {:\」Bandaancha39escalones.es4everexiliados.creatuforo.com7artpictures.com7peliculas.coma3magazine.comadictasalcibersexo.comaestrada.netagente69.comanimeid。 ..「}」, 「code」:17280, 「code Name「:」KeyTooLong「 } –
謝謝@Sergey。 –
正常搜索速度非常快,但是當我像查詢一樣進行搜索時,它需要很長時間。 任何提高類似查詢速度的建議。 查詢示例:db.web_tech.find({url:/.* sa。* /})。count() –