代码之家  ›  专栏  ›  技术社区  ›  SangminKim

dynamodb读取性能差

  •  0
  • SangminKim  · 技术社区  · 7 年前

    这些天,我测试了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-latency DynaModb控制台中的度量在我的测试中显示100-150ms。

    它是如何测量的?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Daniel Vassallo    7 年前

    在读或写单个项目时,您应该期望有一个数字毫秒的性能。但是,当查询一个包含5000个项目的页面时(在您的案例中似乎是这样),通常会看到~100毫秒。

    当然,您还应该确保客户端离dynamodb端点不太远。环游世界很容易增加100毫秒以上。

    推荐文章