0

我最近正在研究時間序列數據項目來存儲一些傳感器數據。爲了實現最大的插入/寫入吞吐量,我使用了capped collection(根據mongodb文檔上限集合將會提高讀/寫性能) 。當我測試集合插入/寫入使用python驅動程序的一千個文件/記錄與無正常集合索引的capped集合時,我看不出在正常集合上寫入集合的寫入性能有很大的改進。例子就像我使用pymongo驅動程序在單線程中插入40K記錄。加蓋收集耗時約25.4秒,正常收集耗時25.7秒。MongoDB上限收集性能

任何人都可以請解釋我什麼時候可以實現加蓋集合的最大插入/寫入吞吐量?這是時間序列數據收集的正確選擇嗎?

+0

性能上限的集合保持不變/穩定的,不管你有多少數據「插入」到它。常規收藏的表現會隨着收藏大小而降低。 –

+0

另外,按照今天的標準,40k文件是不可能的。 (除非你有非常薄弱的​​硬件)。嘗試在每個文檔中寫入幾十億個文檔。你會看到不同之處。 –

+0

嗨,塞爾吉奧,我已經運行了百萬記錄插入封頂collection.i無法看到任何改善超過正常收藏。我的司機也重要的插入率改善?我目前使用32個線程的8核心機器。這種硬件配置不足以使上限收集產生性能反彈? –

回答

0

存儲到加蓋集合中的數據在超過固定大小的加蓋集合時進行旋轉。 Capped集合不需要任何索引,因爲它們保留了插入順序,數據也按自然順序進行檢索,這與數據庫引用磁盤上文檔的順序相同。因此它在插入和數據檢索過程中提供了很高的性能。

對於與封頂收藏請參考文檔更詳細的描述中提到的URL

https://docs.mongodb.com/manual/core/capped-collections/