猿问

Dynamodb 读取性能不佳

这些天,我测试了 Dynamodb 的性能,我对性能感到失望。


我query只在没有任何过滤条件的分区键上使用命令。这意味着它只是简单地读取索引并返回。


dynamodb.query(

    TableName='test-table',

    ReturnConsumedCapacity='TOTAL',

    KeyConditionExpression='tid = :tid',

    Limit=5000,

    ExpressionAttributeValues={

        ':tid': {'N': '9999999'},

    }

)


---------- Part of Response ----------

{

    .

    .

    .

    "Count": 5000,

    "ScannedCount": 5000,

    "LastEvaluatedKey": {

        "tid": {

            "N": "9999999"

        },

        "uid": {

            "N": "985377"

        }

    },

    "ConsumedCapacity": {

        "TableName": "sam-push-test",

        "CapacityUnits": 110.5

    }

}

大约需要 0.5 秒。它在与 Dynamodb 位于同一区域的 AWS Lambda(1024 内存)中进行测试。


我很好奇表现不佳是正常情况还是应该有什么我错过了。


显然,AWS 表示 Dynamodb 可提供个位数毫秒的性能。


Amazon DynamoDB 是一个键值和文档数据库,可在任何规模下提供个位数毫秒的性能。


此外,query-latencyDynamodb 控制台中的指标在我的测试中显示为 100-150 毫秒。


它是如何测量的?


倚天杖
浏览 361回答 1
1回答

慕仙森

读取或写入单个项目时,您应该期望单位数毫秒的性能。但是当查询一个包含 5000 个项目的页面时(就像你的情况一样),看到 ~100ms 是正常的。当然,您还应该确保客户端离 DynamoDB 端点不会太远。环游世界一圈可以轻松增加100ms以上。
随时随地看视频慕课网APP

相关分类

Python
我要回答