В эти дни я тестировал производительность 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 сек. Он протестирован в AWS Lambda (1024 памяти), расположенном в том же регионе, что и Dynamodb.
Мне любопытно, что плохая работа - это нормальная ситуация, или я должен что-то пропустить.
По-видимому, AWS говорит о том, что Dynamodb обеспечивает производительность в одну цифру в миллисекундах.
Amazon DynamoDB - это база данных ключей и документов, которая обеспечивает производительность в несколько десятков миллисекунд в любом масштабе.
Кроме того, показатель query-latency
в консоли Dynamodb показывает 100-150 мс в моем тесте.
Как это измеряется?