查询 Azure 存储表是否始终是 1 个事务?

cze*_*h_u 2 transactions azure azure-table-storage

假设我有一个包含 50K 行的 Azure 存储表,其中包含这样的实体

 {
  PartitionKey,
  RowKey,
  Name,
  Price
}
Run Code Online (Sandbox Code Playgroud)

查询会是这样的

var query = from entity in dataServiceContext.CreateQuery<MyEntity>(tableName)
                 where entity.Price == 10
                 select new { entity.Name};
Run Code Online (Sandbox Code Playgroud)

当我需要搜索 Price == 10 的所有实体时,交易是否仅根据返回的结果数进行计数?或者每个实体 (entity.Price == 10) 的检查是否会被计为单独的读取事务,这会导致 50K 事务?

Den*_*ton 5

查询本身及其响应将在单个可计费事务中(区别于数据库事务)。然而,该响应可能没有您请求的所有行。如果结果集特别大,您将获得一个延续令牌。当您使用继续令牌拉取更多行时,将发生另一笔交易。