获取第100行时出现延迟



我正在从集合中获取所有行,并在第100行经历延迟。我知道find方法返回的是游标,而不是所有的数据,在某一点上需要获取更多的数据。但第100排是唯一的延迟。

Checking images 99
Checking image 100
*pause*
Checking image 101

然后在没有可见延迟的情况下,最多可拍摄10万张图像。

使用的ruby脚本:

require 'mongo'
time_start = Time.now
mongo = Mongo::MongoClient.new("localhost", 27017)
db = mongo["pics"]
images = db["images"]
albums = db["albums"]
orphans = []
images.find().each do |row|
puts "Checking image #{row['_id']}"
end
# puts orphans
time_end = Time.now
puts "Total time taken: #{time_end - time_start}"

二手图像采集(json)

mongoimport --db pics --collection images file_name

问题是:

  • 初始光标是否附带一些数据
  • 为什么第100排是唯一的延迟?也许我错过了什么,但当时我甚至看不到IO的读数

谢谢

MongoDB游标的默认"批量大小"是100个对象。意味着MongoDB在获取下一批之前获取100个对象。。。这就是你看到延迟的原因。所有驱动程序都应该在游标对象上提供一个方法"batch_size()"或类似方法,用于设置和检索批大小。

相关内容

  • 没有找到相关文章

最新更新