DynamoDb文档中指定的查询操作:
查询操作仅搜索主键属性值,并支持关键属性值上的比较运算符子集,以优化搜索过程.
和扫描操作:
扫描操作扫描整个表.您可以指定过滤器以应用于结果,以在完整扫描后优化返回给您的值.
哪种情况最好基于性能和成本考虑因素.
我正在使用适用于 PHP 3.x 的 AWS 开发工具包
对 BatchWriteItem 的单个调用最多可以写入 16 MB 的数据,其中可以包含多达 25 个放置或删除请求。要写入的单个项目可以大到 400 KB。
$result = $dynamodbClient->batchWriteItem([
'RequestItems' => [
$tableName => [
[
'PutRequest' => [
'Item' => [
'Id' => ['N' => '1'],
'AlbumTitle' => [
'S' => 'Somewhat Famous',
],
'Artist' => [
'S' => 'No One You Know',
],
'SongTitle' => [
'S' => 'Call Me Today',
],
],
],
],
],
],
]);
Run Code Online (Sandbox Code Playgroud)
对于单个项目,它工作正常。我怎么能写超过 25 个项目。
表名:用户编号 行数:100000
如何在 node.js 的帮助下使用扫描操作获取所有记录。
var params = {
TableName:"users"};
docClient.scan(params, (error, result) => {
if (error) {
console.log('error', error);
} else {
console.log(result.Items); // x items
}
});
Run Code Online (Sandbox Code Playgroud)
但它只显示部分数据。不是整个表数据。