在azure表存储上的分区键上使用“大于”会导致全表扫描吗?

问题描述

我目前使用的表存储可能很快包含数十亿个实体。像PartitionKey gt 'KNownExclusiveStartPartition'这样的查询会导致表扫描,还是Azure表存储可以使用索引快速找到结果?

一个后续问题是,是否在某处记录了这种行为(哪些查询将导致表扫描以及哪种查询有效)?我知道使用精确的分区(甚至分区+行)值进行查询是最好的选择,但是有关如何在内部建立实体索引的详细信息将是很不错的。

是否在某处记录了如下表(或类似内容):
大O只不过是我想找到前1个值

  • PartitionKey eq 'X' and RowKey eq 'Y'-> O(1)
  • PartitionKey eq 'X'-> O(1)吗?
  • PartitionKey gt 'X'-> O(1)吗?
  • PartitionKey lt 'X'->吗?
  • PartitionKey gt 'X' and RowKey lt 'Y'->吗?

解决方法

如果您在查询中指定了PartitionKey,则无论您使用的是gt还是{{,这至少是一个partition scan(取决于查询中如何使用RowKey)。 1}}分区键运算符。

除非未指定PartitionKey,否则它是表扫描。

对于“是否在某处记录了如下表格(或类似内容)”,没有文档可以反映出来。