我尝试使用列名查询 azure 表,但执行后未返回任何数据。以下是我在java中使用的代码。是否需要表扫描?
String partitionFilter = TableQuery.generateFilterCondition(
COLUMN_ID,
TableQuery.QueryComparisons.EQUAL,
columnId);
是否需要表扫描?
是的,它会执行表扫描,因为筛选器不包含分区键。请参阅"查询设计"部分以获取详细信息。
执行后未返回任何数据
请检查表存储中的某些数据是否可以满足筛选条件。此外,您可以使用HTTP(S(流量捕获工具(例如fiddler(来捕获请求并检查响应中是否包含任何错误或有用信息,这将帮助您解决问题。
更新:
有没有办法为列名编制索引,以便查询更有效?
目前,除了 Azure 表存储中的分区键和行键上的聚集索引上的索引外,没有其他索引。如果可能,您可以修改表设计以提高性能。此外,还可以转到 Azure Cosmos DB 的"高级表",该表提供吞吐量优化表、全局分布和自动二级索引。