具有分区键,行键和非索引的Azure表查询性能

问题描述 投票:0回答:1

我下面有一个表查询,该查询通过PK,RK和一个非索引键进行搜索。

这会减慢数据库搜索的速度吗?如果通过c#在Web层上执行,DOB搜索会更快吗?

        var name = "John";
        var age = 1;
        var dob = DateTimeOffset.Parse("1999-1-1");
        string usernameFilter2 =
            TableQuery.CombineFilters(
                    TableQuery.CombineFilters(
                        TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, name),
                        TableOperators.And,
                        TableQuery.GenerateFilterConditionForInt("RowKey", QueryComparisons.Equal, age)), 
                TableOperators.And,
                TableQuery.GenerateFilterConditionForDate("RowKey", QueryComparisons.Equal, dob));
azure azure-table-storage azure-tablequery
1个回答
0
投票

考虑到PartitionKey / RowKey组合可以有一个实体,我相信查询的第3个过滤条件是多余的(假设您打算在其中包括另一个属性而不是RowKey)。

就查询速度而言,再次考虑要搜索的是具有PartitionKey和RowKey匹配的实体,此查询将是最快的。如果您从查询中删除RowKey并搜索PartitionKey和任何其他未索引的属性,则该查询将变慢,因为查询将进行分区扫描以找到匹配的实体。

[您可能会发现本文有帮助:https://docs.microsoft.com/en-us/azure/cosmos-db/table-storage-design-guide

© www.soinside.com 2019 - 2024. All rights reserved.