DynamoDb的新手
我在AWS DynamoDb中有一个表,如下所示
tblCustomer
Id Name Email
1 Abc abc@gmail.com
2 Xyz xyz@gmail.com
这是一张巨大的桌子。在探索周围。 Query
比Scan
好。
因此,我选择了“通过扫描查询”。
这就是我的C#函数的样子。
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
var request = new QueryRequest
{
TableName = "tblCustomer",
ProjectionExpression = "Name, Email"
};
var response = await client.QueryAsync(request);
foreach (Dictionary<string, AttributeValue> item in response.Items)
{
}
但这会引发异常
KeyConditionExpress cannot be null
在这里,我不需要KeyConditionExpress,因为我需要吸引所有客户。
如何以最有效的方式从tblCustomer获取所有记录?
谢谢!
答案 0 :(得分:4)
如果您要返回记录的子集,则查询比扫描要好-无论如何,您尝试执行的操作(无条件查询)在功能上等同于扫描,因此您最好使用扫描。
也就是说,如果您发现自己需要经常运行全表扫描,则可能表明您的设计存在问题-扫描既昂贵又缓慢,应仅在必要时使用。