簡體   English   中英

如何調試MongoDB查詢以提高性能

[英]How to debug MongoDB queries for performance

我有一個小應用程序,並且使用MongoDb(Mongoid)。 集合相對較小(大約300條記錄),但是查詢花費的時間很長(大約12s)。 這是我的查詢:

query = Lead.order(:post_date.desc).cache
query = query.page(params['page_number']).cache if params['page_number']
query = query.per(params['page_size']).cache if params['page_size']
query = query.where(read: params['read']).cache if params['read']
query = query.where(important: @user.id.to_s).cache if params['important'] == "true"
query = query.where(starred: @user.id.to_s).cache if params['starred'] == "true"

我在模型上有笨拙的索引設置:

index({ post_date: 1 }, { background: true })
index({ read: 1 }, { background: true })
index({ important: 1 }, { background: true })
index({ starred: 1 }, { background: true })

所以我的問題是,1)如何改善此查詢的性能; 2)有沒有可以監視查詢並提出改進建議的工具(如NewRelic,盡管NewRelic並未提供有關如何提高查詢性能的詳細信息) ?

提前致謝!

CloudManager是付費的GUI,它(其中包括)提供“像NewRelic”一樣的性能分析。

內置的探查器默認情況下會記錄慢速查詢(> 100毫秒),但可以打開(謹慎)以記錄所有內容。

.explain()分析特定查詢的性能。

Compas是具有一些性能見解的官方GUI。

更多監視工具: https : //docs.mongodb.com/manual/administration/monitoring/

暫無
暫無

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

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