我在mongodb中運行約120萬條記錄的查詢。查詢通過mongo shell和使用Java驅動程序快速執行,但是當我嘗試通過Java驅動程序將結果轉換爲json對象時,它非常緩慢(查詢需要< 100ms,但轉換爲json需要> 30s) 。結果集約有5k項。我正在使用JSON.serialize(cursor)
進行轉換。mongodb java驅動程序將大型結果集轉換爲json
雖然我希望它採取的一點點時間來轉換成JSON字符串,如果我運行從shell查詢,但做
var cursor = //execute query
var arr = cursor.toArray();
arr
它很快打印出來。
在序列化過程中,mongo服務器統計報告了越來越多的頁面錯誤,但是我增加了我的RAM,使其比整個集合加索引大得多。
想想這裏可能會發生什麼,以及如何提高轉換爲json的速度?
感謝您的解釋。同意將50k文件放在內存中效率不高。欣賞與支持流式傳輸的驅動程序的鏈接。 –