MongoDB进入find()操作的速度越来越慢

时间:2013-07-10 01:13:07

标签: mongodb amazon-ec2

我在Amazon EC2微实例上设置了MongoDB。数据库中有大约700万个项目。我正在尝试迭代所有这些并打印出有关每个项目的一些信息。我正在使用python包装器。

import pymongo as p
db_client = p.MongoClient()
db = db_client.my_awesome_db
photo_collection = db.photos
for photo in photo_collection.find():
    print photo['attr']

我没有在内存中存储任何内容,并且DB没有被其他任何东西使用。

由于查询运行时间很长,我使用limit()来估算应该花多长时间。我看到非线性时间,我越大越好。例如,

  • 限制 - >时间
  • 1,000 - > 1秒
  • 10,000 - > 10秒
  • 100,000 - > 720秒(~12分钟)
  • 700,000 - > 9000秒

这并不荒谬,但它比线性大(从10k到100k的跳跃似乎非常糟糕)。我可以在一秒钟内轻松迭代700万行文件,但按此速率迭代整个数据库需要25个小时。

我有错误的配置吗? find()不是正确的函数吗?

0 个答案:

没有答案