Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何确定DynamoDB表是否为空?_C#_.net_Amazon Dynamodb - Fatal编程技术网

C# 如何确定DynamoDB表是否为空?

C# 如何确定DynamoDB表是否为空?,c#,.net,amazon-dynamodb,C#,.net,Amazon Dynamodb,如何使用.NET SDK确定DynamoDB表是否包含任何项 一个选项是执行扫描操作,并检查返回的计数。但是,对于大型表,扫描的成本可能会很高,因此应该避免。编辑:虽然下面的内容对于本地主机上的小型表似乎可以正常工作,但请说明 DynamoDB大约每六小时更新一次该值。最近的更改可能不会反映在此值中 因此,如果您不需要准确的最新数据,请仅使用descripbetable 原件: 看起来最好的方法是在AmazonDynamoDBClient上使用descripbetable方法: AmazonDy

如何使用.NET SDK确定DynamoDB表是否包含任何项


一个选项是执行
扫描
操作,并检查返回的计数。但是,对于大型表,扫描的成本可能会很高,因此应该避免。

编辑:虽然下面的内容对于本地主机上的小型表似乎可以正常工作,但请说明

DynamoDB大约每六小时更新一次该值。最近的更改可能不会反映在此值中

因此,如果您不需要准确的最新数据,请仅使用
descripbetable

原件:

看起来最好的方法是在
AmazonDynamoDBClient
上使用
descripbetable
方法:

AmazonDynamoDBClient client = ...
if (client.DescribeTable("FooTable").Table.ItemCount == 0)
    // do stuff

描述表计数不返回实时值。项目计数每6小时更新一次

最好的方法是只扫描一次,不使用任何筛选器表达式并检查计数。这可能并不昂贵,因为您只需扫描一次表,而且它不会扫描整个表,因为您不需要递归扫描来查找表中是否有任何项

单次扫描仅返回1MB的数据。
如果用例需要实时值,这是最好的也是唯一可用的选项。

谢谢,我在回答中已经对可描述性提出了警告。扫描时:根据文档“扫描操作总是扫描整个表”。看起来使用Limit参数可以减少读取量。