【问题标题】:Azure table storage performance - REST vs. StorageClientAzure 表存储性能 - REST 与 StorageClient
【发布时间】:2011-08-19 07:29:44
【问题描述】:

我正在使用 Azure 表存储,并试图找出提高性能的最佳方法。我执行的查询非常简单——要么是使用分区键和行键的精确选择,要么是带有列表的 where 子句(例如,WHERE x==1 或 x==2 或 x==3 等)。一旦我取回数据,我就不会在数据上下文中跟踪它(不需要更改跟踪等)。保存数据也是如此,所以我只将它添加到上下文中以启用保存。

目前,我正在使用 .NET 库(存储客户端)。由于我不使用 TableServiceContext 的更改跟踪和其他功能,我正在考虑直接使用 HTTP API。有没有人尝试过这两种选择?如果是这样,您看到了什么样的性能差异?

谢谢, 埃里克

【问题讨论】:

    标签: .net performance azure azure-table-storage


    【解决方案1】:

    为了优化性能,表存储可能有点变幻莫测。有多种因素会对其产生影响。这里只是我脑海中的一些:

    1. 必须在每个查询中使用分区键。如果你不这样做,你就做错了。如果您使用单 PK 和单 RK(并且只有这两个),则不再是查询,而是资源 GET,并且应该是相对即时的。
    2. 不要使用基于 OR 的查询。这将导致全表扫描,您的性能将很糟糕。相反,在 OR 语句中并行化这些查询。
    3. 分区策略将产生重大影响。您拥有多少个分区以及访问它们的频率(以使它们预热并导致底层分区服务器负载平衡)将导致巨大的差异。分区的大小在这里也有很大的影响。顺序分区键通常是个坏主意。
    4. 小请求可以从关闭 nagling 中受益(如前所述)。
    5. 关闭上下文跟踪并 100 次继续 (see here) 也会有所帮助。

    我想还有更多取决于您的应用程序。但是,我提到的通常是我开始的那些。

    【讨论】:

      【解决方案2】:

      【讨论】:

      猜你喜欢
      • 2016-05-31
      • 2014-10-18
      • 1970-01-01
      • 1970-01-01
      • 2015-03-16
      • 2013-02-04
      • 2015-12-10
      • 2020-10-15
      • 2015-05-09
      相关资源
      最近更新 更多