[英]AWS DAX Performance issues with table scan
嗨,我正在做一個需要將所有 dyanamo db 文檔放入內存的項目。 我將使用table.scan()
boto3 方法,所有 10k 記錄幾乎需要 33 秒。
我已經配置了 DAX 並將其用於表掃描,這需要將近 42 秒,具有相同的 10k 記錄和相同的 lambda 配置。 我試了多次結果都是一樣的。
我嘗試了以下代碼:
daxclient = amazondax.AmazonDaxClient.resource(endpoint_url="...")
table = daxclient.Table('table_name')
start_time = time.perf_counter()
retry = True
while retry:
try:
response = table.scan(TableName ="table_name")
retry = 'LastEvaluatedKey' in response
scan_args['ExclusiveStartKey'] = response.get('LastEvaluatedKey')
except Exception as e:
print(e)
print(time.perf_counter()-start_time)
我嘗試boto3 getItem()
方法,這變得更快,比如第一次需要 0.4 秒,之后需要 0.01 秒。
不知道為什么它不適用於表掃描方法。
請建議。
DAX 不緩存掃描結果。 因此,您不應該期望性能提升,並且由於您在訪問數據庫的過程中會通過額外的服務器彈跳,因此可能會降低性能。
您必須有非常大的項目才能看到這些性能數字。 你經常做掃描嗎? 您可能需要仔細檢查 DynamoDB 是否合適。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.