DynamoDB batchGet 与多个 getItem

DynamoDB batchGet vs multiple getItem

使用多个 getItem 调用在成本或性能方面是否有任何差异:

Promise.all([
     client.getItem({ TableName, Key }).promise(),
     client.getItem({ TableName, Key }).promise(),
     client.getItem({ TableName, Key }).promise(),
   ]

给一个 batchGet 电话:

const params = {
  RequestItems: {
    'TABLE_NAME': {
      Keys: [
        {'KEY_NAME': {N: 'KEY_VALUE_1'}},
        {'KEY_NAME': {N: 'KEY_VALUE_2'}},
        {'KEY_NAME': {N: 'KEY_VALUE_3'}}
      ]
    }
  }
};

db.batchGetItem(params).promise()

成本而言:否 - 两个操作消耗相同数量的读取容量单位。

性能而言:是 - 使用多个 GetItem 请求会为每个请求发送单独的网络请求,而 BatchGetItem 只有一个请求,这应该会快很多.

BatchGetItem 没有真正的缺点,只是在找不到某些项目时稍微增加了复杂性。