[英]Slow Mongoose Requests
我一直在慢貓鼬查詢。 我將范圍縮小為Mongoose創建對象的方式或db服務器請求中的實際延遲。 我幾乎沒有數據庫中的任何數據(4個集合中的每個集合中的<1000個對象),並且手動運行了查詢(與產品中的查詢類似)並對它們進行了概要分析,它們都運行了2-4毫秒。
我無法通過在線搜索/查看文檔找出兩個大問題:
這是我看到的一些延遲時間:
Login
localhost + localDB = 58ms
localhost + mongoHQ = 127ms
heroku + mongoHQ = 287ms
Get Data
localhost + localDB = 281ms
localhost + mongoHQ = 1657ms
heroku + mongoHQ = 2190ms
更新1
我想出了如何記錄查詢並檢查了其中的一些查詢。 我認為它可以歸結為一個帶有大量填充調用的查詢-我注意到在生成查詢的填充部分時,Mongoose輸出一個Mongo查詢,例如:
users.find({ _id: { '$in': [ ObjectId("531ec0e17c0b16a82be4f506"),
ObjectId("531ec0e17c0b16a82be4f506"), ObjectId("531ec0e17c0b16a82be4f506") ...
其中ID重復多次(在這種情況下為數百次)-我認為這是速度下降的原因,並測試了代碼,發現每次填充調用都會使請求時間增加約0.3s-.5s。 填充調用也在數組字段上運行-這還將查詢的ID數保持在100到1000(低)(重復)之間。
進行填充呼叫時,是否可以刪除重復的條目?
嘗試更改查詢以使用“精簡”選項,然后查看時間是否減少了。 這將繞過貓鼬實體的創建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.