gpt4 book ai didi

azure-storage - 按行键作为条件查询 Azure 表

转载 作者:行者123 更新时间:2023-12-04 05:30:59 25 4
gpt4 key购买 nike

使用查询通过 rowkey 获取记录/记录有多好?进行仅检查行键的查询是否有意义?我知道您可以组合主键 + 行键并获取特定记录,或者然后通过特定分区键获取所有记录(因此所有相关数据将快速返回)。

我想如果您进行查询以查找 rowkey,那么当您查询具有大量项目的表时,性能会下降,因为它必须查看所有项目。

你们能在通过 rowkey(单独)make's sens 查询时说出一个案例吗?我不是指检索到的结果,而是指发送到 azure 存储以返回项目的查询。

最佳答案

Azure 表存储(截至目前)构建了两个索引,使查找更快/更快,它们是 PartitionKey 和 Rowkey。仅当您有一个分区(或很少的分区)时,通过 rowkey 查询才有意义。如果您有很多分区并且您只指定了行键,它将不得不查找所有分区。

例如,假设您将社会保险号存储在表存储中。让我们看两个场景......

一个好的分区策略可能是将状态作为分区键。在您的查询中,如果您只是通过 PartitionKey='CA' & RowKey='123456789' Azure 表存储知道要转到的分区以及该分区中的确切行。如果您的查询只是:RowKey = '123456789',Azure 表存储必须扫描所有分区(50 个状态)才能找到匹配的 RowKey。

另一种策略可能是一个巨大的单个分区,其中 rowkeys 作为社会安全号码。如果您的查询: RowKey = '123456789' 然后 Azure 表存储可以使用行键上的索引非常快速地查找值。因为只有一个分区,所以 PartitionKey 不是查询的一部分不会减慢它的速度(或者至少不应该)。

还要记住,Azure 表存储内部可以将分区放在不同的驱动器上,以优化大量使用。因此,为具有大量分区的大表指定分区键是理想的。

关于azure-storage - 按行键作为条件查询 Azure 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19715885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com