AWS DynamoDB 查询太慢(使用查询,而不是扫描)
AWS DynamoDB query too slow (using query, not Scan)
这是我第一次使用 AWS Lambdas 和 DynamoDB,在 Python。
我的 Table 只有 474 条记录,总重量为 890.4 KB。过滤后的选择大约只有 380 条记录。
很小,但查询起来还是需要好几秒。真的太慢了。
我使用全局二级索引,因为它应该是过滤集合的方式。
dynamo = boto3.resource('dynamodb', region_name='us-east-1',
aws_access_key_id='my_key',
aws_secret_access_key= 'my_key')
table = dynamodb.Table('my_table_name')
response = table.query(
IndexName='venta_arge_ok-index',
KeyConditionExpression=Key('venta_arge_ok').eq('True'))
当我在控制台中测试 Lambda 时,我得到以下数字:
- 内存大小:128MB
- 使用的最大内存:84
运行 测试了几次,并在 3 秒左右得到了一致的时间:
- 时长:3270.27 毫秒
- 时长:3069.37 毫秒
- 时长:3290.68 毫秒
- 时长:3013.34 毫秒
- 时长:3157.71 毫秒
我在这里错过了什么?谢谢!
正如 Noel Llevares 指出的那样,该问题与内存大小有关(并且与 CPU 功率增加有关)。
对于每个测试的内存大小,同一个 Lambda 给出了以下结果:
128 MB - 3 秒
256 MB - 1.5 秒
512 MB - 0.75 秒
1024 MB - 0.4 秒
这是我第一次使用 AWS Lambdas 和 DynamoDB,在 Python。
我的 Table 只有 474 条记录,总重量为 890.4 KB。过滤后的选择大约只有 380 条记录。
很小,但查询起来还是需要好几秒。真的太慢了。
我使用全局二级索引,因为它应该是过滤集合的方式。
dynamo = boto3.resource('dynamodb', region_name='us-east-1',
aws_access_key_id='my_key',
aws_secret_access_key= 'my_key')
table = dynamodb.Table('my_table_name')
response = table.query(
IndexName='venta_arge_ok-index',
KeyConditionExpression=Key('venta_arge_ok').eq('True'))
当我在控制台中测试 Lambda 时,我得到以下数字:
- 内存大小:128MB
- 使用的最大内存:84
运行 测试了几次,并在 3 秒左右得到了一致的时间:
- 时长:3270.27 毫秒
- 时长:3069.37 毫秒
- 时长:3290.68 毫秒
- 时长:3013.34 毫秒
- 时长:3157.71 毫秒
我在这里错过了什么?谢谢!
正如 Noel Llevares 指出的那样,该问题与内存大小有关(并且与 CPU 功率增加有关)。
对于每个测试的内存大小,同一个 Lambda 给出了以下结果:
128 MB - 3 秒 256 MB - 1.5 秒 512 MB - 0.75 秒 1024 MB - 0.4 秒