我現在正在使用Mongodb作爲緩存。該應用程序將在晚上提供3個CSV,並且CSV會變得更大,因爲新產品將一直添加。現在,我達到了500萬條記錄,處理所有事情花了大約2個小時。由於緩存每天都會刷新,刷新數據將變得不切實際。隨着時間的推移,Mongodb性能會顯着下降。
例如
CSV 1
ID, NAME
1, NAME!
CSV 2
ID, DESCRIPTION
1, DESC
CSV 3
ID, SOMETHING_ELSE
1, SOMETHING_ELSE
的應用程序將讀取CSV 1,並把它在數據庫中。然後,CSV 2將被讀取,如果有新的信息將被添加到相同的文檔或創建一個新的記錄。同樣的邏輯適用於CSV 3.因此,一個文檔將從不同的CSV獲得不同的屬性,因此upsert
。一切完成後,所有的文件將是索引。
現在第一百萬份文件相對較快,但我可以看到隨着時間的推移,性能會大大降低。我猜這是因爲Mongodb必須找到文檔並更新屬性,否則就創建它。我正在使用Java驅動程序和MongoDB 2.4。無論如何,我可以改進,甚至在mongodb java驅動程序中進行批量upsert?