Azure Table 存储查询性能

Azure Table Storage Query Performance

如果您知道确切的分区键和行键,Table 存储查询的性能会有很大差异吗?

我们为 RowKey 使用日期时间,为了获取最新的条目,我们检索一天的所有内容,然后在代码中对其进行排序。

PartitionKey eq '123456' and RowKey ge '20170713000000000' and RowKey le '20170714000000000' 

这会更快地从 table 存储中检索记录吗?

PartitionKey eq '123456' and RowKey eq '20170713101000000' 

PartitionKey eq '123456' and RowKey eq '20170713101000000'

这个查询肯定会比

PartitionKey eq '123456' and RowKey ge '20170713000000000' and RowKey le '20170714000000000'

第一个查询使用了所有可用的索引(PartitionKeyRowKey)并且是一个点查询。

第二个查询也很有效(尽管不如第一个查询),因为它仅在单个分区中搜索,但它正在执行所谓的 Partition Scan。此查询将转到所需的分区,然后搜索匹配的 RowKey 值。随着分区中实体数量的增加,您会注意到第二个查询的性能下降。