gpt4 book ai didi

azure - 唯一分区键有什么缺点?

转载 作者:行者123 更新时间:2023-12-03 00:43:40 25 4
gpt4 key购买 nike

我的数据集只会被直接查询(意味着我正在通过某个标识符查找特定项目),或者将被完整查询(意味着返回表中的每个项目)。鉴于此,是否有任何理由使用唯一的分区键?

根据我所读到的内容(例如:https://azure.microsoft.com/en-us/documentation/articles/storage-table-design-guide/#choosing-an-appropriate-partitionkey),非唯一分区键的优点是能够进行事务性更新。我不需要在此数据集中进行事务更新,因此除了某些独特的事物(例如 GUID)之外,是否有任何理由进行分区?

假设我为每个项目使用唯一的分区键,这意味着每个分区中都有一行。我应该在行键中重复分区键,还是应该为行键设置一个空字符串?是否允许使用空行键?

最佳答案

Zhaoxing's answer本质上是正确的,但我想对其进行扩展,以便您可以更多地理解原因。

表分区定义为表名加分区键。一台服务器可以有多个分区,但一个分区只能位于一台服务器上。

这种基本设计意味着对存储在单个分区中的实体的访问无法实现负载平衡,因为分区支持原子批量事务。因此,单个表分区的可扩展性目标低于整个表服务的可扩展性目标。将实体分布在多个分区上可以让 Azure 存储更好地扩展负载。

点查询是最佳的,这很棒,因为听起来这就是您将要做的很多事情。如果分区键没有逻辑意义(即,您不希望特定分区中的所有实体),则最好将其拆分为多个分区键。列出表中的所有实体总是会比较慢,因为它是扫描。如果遇到超时、1000 个实体或服务器边界(如上所述),Azure 存储将返回延续 token 。许多存储客户端库都有方便的方法,可以在您迭代列表时自动遵循这些标记来帮助您处理此问题。

TL;DR:根据您提供的信息,我建议每个项目使用唯一的分区键。不允许使用空行键,但是您想要构造行键的其他方式都可以。

阅读:

Azure Storage Table Design Guide

Azure Storage Performance Check List

关于azure - 唯一分区键有什么缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32447139/

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