C# 如何确定DynamoDB表是否为空?
如何使用.NET SDK确定DynamoDB表是否包含任何项C# 如何确定DynamoDB表是否为空?,c#,.net,amazon-dynamodb,C#,.net,Amazon Dynamodb,如何使用.NET SDK确定DynamoDB表是否包含任何项 一个选项是执行扫描操作,并检查返回的计数。但是,对于大型表,扫描的成本可能会很高,因此应该避免。编辑:虽然下面的内容对于本地主机上的小型表似乎可以正常工作,但请说明 DynamoDB大约每六小时更新一次该值。最近的更改可能不会反映在此值中 因此,如果您不需要准确的最新数据,请仅使用descripbetable 原件: 看起来最好的方法是在AmazonDynamoDBClient上使用descripbetable方法: AmazonDy
一个选项是执行
扫描
操作,并检查返回的计数。但是,对于大型表,扫描的成本可能会很高,因此应该避免。编辑:虽然下面的内容对于本地主机上的小型表似乎可以正常工作,但请说明
DynamoDB大约每六小时更新一次该值。最近的更改可能不会反映在此值中
因此,如果您不需要准确的最新数据,请仅使用descripbetable
原件:
看起来最好的方法是在AmazonDynamoDBClient
上使用descripbetable
方法:
AmazonDynamoDBClient client = ...
if (client.DescribeTable("FooTable").Table.ItemCount == 0)
// do stuff
描述表计数不返回实时值。项目计数每6小时更新一次 最好的方法是只扫描一次,不使用任何筛选器表达式并检查计数。这可能并不昂贵,因为您只需扫描一次表,而且它不会扫描整个表,因为您不需要递归扫描来查找表中是否有任何项 单次扫描仅返回1MB的数据。
如果用例需要实时值,这是最好的也是唯一可用的选项。谢谢,我在回答中已经对可描述性提出了警告。扫描时:根据文档“扫描操作总是扫描整个表”。看起来使用Limit参数可以减少读取量。