Azure表存储查询性能

Ric*_*ich 4 azure query-performance azure-table-storage

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

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

PartitionKey eq '123456' and RowKey ge '20170713000000000' and RowKey le '20170714000000000' 
Run Code Online (Sandbox Code Playgroud)

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

PartitionKey eq '123456' and RowKey eq '20170713101000000' 
Run Code Online (Sandbox Code Playgroud)

Gau*_*tri 5

PartitionKey eq'123456'和RowKey eq'20170713101000000'

这个查询肯定会比

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

第一个查询使用所有可用索引(PartitionKeyRowKey),并且是一个点查询.

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