我在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文件放在内存中效率不高。欣赏与支持流式传输的驱动程序的链接。 –