我正在測試Mongo DB用於數據庫中一個巨大的表約300億記錄約200字節每個。我知道Sharding是這種音量所需要的,所以我試圖在一臺機器上獲得1到20億條記錄。我已經在具有2個CPU/6個內核和64 GB RAM的計算機上達到了10億條記錄。我輸入了沒有索引的文件,並且速度還可以(平均14k條記錄/秒)。我添加了索引,這需要很長時間,但這是可以的,因爲它是一次性的。現在將新記錄插入數據庫需要很長時間。據我所知,插入記錄(CPU,RAM和I/O狀態良好)時機器未加載。如何加速插入新記錄?MongoDB插入性能 - 巨大的表與幾個索引
3
A
回答
4
我建議將此主機添加到MMS(http://mms.10gen.com/help/overview.html#installation) - 確保您安裝了munin-node支持,這將爲您提供最多的信息。這可以讓你跟蹤什麼可能會減慢你的速度。對不起,我不能在答案中更具體,但這裏有很多很多可能的解釋。一些一般性的要點:
- 添加索引意味着,索引以及你的工作數據集將在RAM現在,這可能褪去,你的資源(查找頁面錯誤)
- 現在,你有指標,它們必須在插入時更新 - 如果所有內容都適合RAM,則應該是正常的,請參閱第一點
- 您還應該檢查磁盤IO,看看它是如何執行的 - 背景平均值如何顯示?
- 您是否正在運行正確的文件系統(XFS,ext4)和2.6.25以後的內核版本? (早期版本有fallocate問題())
跟進一些不錯的一般信息可以在這裏找到:
相關問題
- 1. 插入數據到一個巨大的索引表
- 2. ORACLE在索引表上插入性能
- 3. mongodb搜索索引性能
- 4. MongoDB的索引和非索引性能
- 5. MongoDB:插入唯一索引
- 6. 巨大的數據輸入webform性能
- 7. 提高大規模索引數據庫的性能插入
- 8. 巨大的性能浸
- 9. 比較MongoDB和RethinkDB Bulk插入性能
- 10. 在一個巨大的表上添加一個有效的索引
- 11. 加入巨大的表
- 12. MongoDB索引的複雜性
- 13. 索引巨大表格所需的建議
- 14. 最大數量與數量查詢的巨大性能差異
- 15. 創建一個巨大的查找表,關於性能問題
- 16. 在索引中插入一個列表
- 17. 插入聚簇索引表
- 18. 跟蹤MongoDB性能?
- 19. 在巨大的表格搜索
- 20. JQGrid標題插入巨大的標題
- 21. MongoDB背景索引大小
- 22. Solr索引合併後只有一個巨大的文件IndexMergeTool
- 23. SQLite插入性能
- 24. 在兩個聯合(UNION ALL)巨大表中改進SELECT性能
- 25. 更新與插入性能
- 26. 優化的表與一個巨大的文本字段
- 27. foreach的巨大性能問題
- 28. 巨大的性能影響(Angular2)
- 29. MySQL的 - 插入與外鍵索引
- 30. 代表一個巨大的矩陣/表
你能告訴我們的插入速度是什麼呢?也許平均每個插入毫秒。 – 2012-03-27 17:15:44
現在的插入速度,在表中有10億條記錄,並且定義了2個索引,每秒大約有200條記錄。 – 2012-04-01 10:28:08
2指數是什麼樣的指數? _id或稀疏或獨特或正常? – jianpx 2013-01-26 03:46:45