通过AWS Lambda的Pymongo查询明显变慢

时间:2019-07-03 03:32:56

标签: python-3.x aws-lambda mongodb-query pymongo

当我使用命令行通过Robo 3T,mongod或pymongo运行查询时,查询需要50毫秒才能返回结果。在AWS Lambda中使用pymongo运行相同的查询需要15到16秒。所有查询都不是那么慢,在我的情况下只是地址查询(名称查询不到1秒)。我正在使用python 3.6,pymongo 3.7和mongodb 3.6。

我不认为这是一个冷门问题,因为我连续运行2个查询,这是第二个查询,而第一个查询仍然不到一秒钟。另外,我尝试了连续运行多次,每次都得到相同的结果。该功能仅占用分配的128MB中的57MB,因此我不认为这可能是CPU问题,并且增加CPU根本没有改变速度。

MongoDB查询

db.getCollection('CA').find({'$and': [{'OWNER_ZIP': {'$regex': '^95120'}},{'OWNER_STREET_1': '123 MAIN STREET'}]})

pymongo查询

cursor = list(db_unclaimed.find({'$and': [{'OWNER_ZIP': {'$regex': '^95120'}},{'OWNER_STREET_1': '123 MAIN STREET'}]}).skip(0).limit(50))

我正在使用的Python函数

def searchAddress(zipcode, address, page_size, page_num):
    print('Searching by address...')
    print(address)
    skips = page_size * (int(page_num) - 1)
    cursor = list(db_unclaimed.find({'$and': [{'OWNER_ZIP': {'$regex': zipcode}},{'OWNER_STREET_1': address}]}).skip(skips).limit(page_size))
    for document in cursor: print(document)
    return cursor

我希望查询在lambda中花费的时间与使用其他3种方法所花费的时间几乎相同,即使它可能会慢一些。是否有人对导致这种情况的原因有任何想法?

0 个答案:

没有答案