我尝试使用列名查询azure表,但执行后没有返回任何数据。以下是我在java中使用的代码。是否需要进行表扫描?
String partitionFilter = TableQuery.generateFilterCondition(
COLUMN_ID,
TableQuery.QueryComparisons.EQUAL,
columnId);
答案 0 :(得分:2)
是否需要进行表格扫描?
是的,它会执行表扫描,因为您的过滤器不包含PartitionKey。请参阅" Design for querying"部分以获取详细信息。
执行后没有返回任何数据
请检查表格存储中的某些数据是否符合过滤条件。此外,您可以使用HTTP(S)流量捕获工具(如fiddler)捕获请求,并检查响应中是否包含任何错误或有用信息,这将有助于您解决问题。
<强>更新强>
有没有办法索引列名,以便查询更有效?
目前,Azure表存储中的PartitionKey和RowKey上的聚簇索引上没有其他索引。如果可能,您可以修改table design以提高效果。此外,您还可以转到提供吞吐量优化表,全局分布和自动二级索引的Azure Cosmos DB's "premium table"。