在 Azure table 上使用 AND 执行查询非常慢

Query execution using AND on Azure table is very slow

如果我试试这个:

( RowKey ge '1606780800000' )

我在一秒钟内得到结果。

但是如果我尝试使用 AND,仍然像这样使用 RowKey:

( RowKey ge '1606780800000' and RowKey le '1606784400000' )

它一直在加载。

我知道with OR it will perform a full scan,但是AND也是这样吗?有什么办法解决这个问题吗?

如果只使用 2 RowKeys with AND 运算符(没有 PartitionKey),它将进行 table 扫描。

这里有一些建议:

1.You如果可能的话可以用range query。然后你可以像$filter=PartitionKey eq 'xxx' and RowKey ge '1606780800000' and RowKey le '1606784400000'一样指定过滤器。但是如果比PartitionKeys多一个,就需要写多个query。

2.If 您仍在使用此查询:( RowKey ge '1606780800000' and RowKey le '1606784400000' )。此时如果requested items超过1000条,查询一次最多只能return1000条。所以在这种情况下,您应该在查询中使用 x-ms-continuation-NextPartitionKeyx-ms-continuation-NextRowKey。有关详细信息,请参阅 this doc