我将SageMaker笔记本与DocumentDB数据库一起使用。我在DocumentDB所在的VPC中运行我的笔记本,但是检索数据需要花费大量时间。我的集合中大约有6万个文档。请考虑下面的代码:
numbers = []
for x in collection.find({},{'number':1}):
numbers.append(x)
字段number
只是一个字符串,用于标识另一个数据库中的文档。正如我所说的,它应该返回一个包含大约6万个字符串的列表。不是很大。然而,它需要很长的时间来运行(超过10分钟)。这在DocumentDB中正常吗?可能发生了什么?当在我的机器上本地使用MongoDB时,这曾经快得多。
1条答案
按热度按时间ef1yzkbh1#
首先,没有过滤器的查询是一个集合扫描。根据工作集大小(那些文档有多大)和您使用的示例大小,结果可能没有缓存,因此比您在本地机器上使用的要慢。尝试强制使用_id索引,它可能会提高查询速度,如下所示: