我需要通过收集行键(在一个分区中)来查找多个实体。执行此操作的正确查询是什么?

最佳答案

仅通过 rowkey 查询的问题(我将原始问题解释为暗指):您最终会进行表扫描,因为该 rowkey 可能存在于任何分区中。而且,如果您单独执行这些查询,您最终会对每个查询进行表扫描(即使使用任务并行库,正如@GlennFerrieLive 在对原始问题的评论中所建议的那样)。
您可以使用 $filter (如 this article 中所述)或行键的离散列表(限制为过滤器内的 15 个单独比较)指定行键的范围。这最终应该只进行一次表扫描,但仍然是......一次表扫描。
如果可以在您的查询中指定一个分区键,您应该这样做,因为它会使您的查询返回得更快。好的,相对而言更快,因为我不知道您存储的数据量。
编辑 :每次通过评论更新,因为您知道分区键,您可以按照上面的指导在单个过滤器中指定行键范围或离散行键。或者...如果您有更多的行键,您可以考虑通过 TPL 执行这些(鉴于没有表扫描,现在很有意义),作为每个过滤器的单个行键或分组到范围或过滤列表中。

关于.net - 通过行键集合查询azure表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10694904/

10-12 23:16