我有從web api獲取的門票收藏,現在我擁有大約20,000張門票,但是這個收藏可能會達到100萬或更多。綜合功能與手動計數
我想計算出公司有多少票是公開關閉的。
兩種方式我都:
- 店門票分貝,然後使用聚合函數
- 而取票我的手動計算使用計數器
告訴我哪種方式好?
P.S集合函數是否昂貴?它會減慢數據庫性能嗎?
我有從web api獲取的門票收藏,現在我擁有大約20,000張門票,但是這個收藏可能會達到100萬或更多。綜合功能與手動計數
我想計算出公司有多少票是公開關閉的。
兩種方式我都:
告訴我哪種方式好?
P.S集合函數是否昂貴?它會減慢數據庫性能嗎?
可以有不同的方法,但我當然不打算在運行時對這麼多龐大的數據進行聚合,我也不建議你進行預計算並丟棄api數據。
我只是做一個集合來保存所有的api數據,然後創建一個包含開始和結束票數的彙總表,這樣您的數據就會被保留下來,因此也就是您的表現。
而且是啊,聚合框架是昂貴的,並且在這麼多的數據,你明確需要specity allowDiskUse: <boolean>
和`
雖然總執行它減慢
collection
不是 數據庫,wiredTiger Storage Engine
不鎖定數據庫,而是鎖定在文檔級別進行讀寫操作。 `
如果數據很小像20,000那麼? –
現在我在從api獲取數據的同時添加計數器 我將計數存儲在彙總表中,並將api數據存儲在其他表中 這是一個好方法嗎? –
是的,如果數據很小,那就沒關係。那麼聚合不會佔用大量內存,並且效率很高。 – rummykhan
指數,說如果oppened和執行計數領域(或全球數,我不明白你的意思「開關開通過公司明智關閉」什麼的)。
將是快,你不會需要一個聚集執行這個簡單的計數哈哈
預算最好,如果你很少更新數據,但很多時候查詢。如果是另一種情況(罕見閱讀,頻繁更新),那麼你想犧牲一些性能來獲得最新的結果。 –
@sergio請詳細解釋 –