Azure 表存储 - 表扫描的速度有多快?

标签 azure azure-table-storage full-table-scan

每个人都警告不要查询 Azure 表存储 (ATS) 中除 RowKey 或 PartitionKey 之外的任何内容,以免被迫进行表扫描。有一段时间,这让我陷入了瘫痪,当我需要查询其他内容时,我试图想出完全正确的 PK 和 RK 并在其他表中创建伪二级索引。

但是,我突然想到,当我认为合适的时候,我通常会在 SQL Server 中进行表扫描。

所以问题就变成了,表扫描 Azure 表的速度有多快。这是一个以实体/秒为单位的常量,还是取决于记录大小等。如果您想要一个响应式应用程序,是否有一些经验法则来确定多少记录对于表扫描来说太多?

最佳答案

表扫描的问题与跨越分区边界有关。您所保证的性能级别是在分区级别明确设置的。因此,当你运行全表扫描时,它a)效率不高,b)没有任何性能保证。这是因为分区本身设置在单独的存储节点上,当您运行跨分区扫描时,您可能会消耗大量资源(同时占用多个节点)。

我相信,跨越这些边界的效果也会导致连续 token ,这需要额外的往返存储才能检索结果。这会导致性能下降以及事务计数(以及随后的成本)增加。

如果您要跨越的分区/节点数量相当小,您可能不会注意到任何问题。

但是请不要引用我的话。我不是 Azure 存储方面的专家。这实际上是我对 Azure 最不了解的领域。 :P

关于Azure 表存储 - 表扫描的速度有多快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4831989/

相关文章:

node.js - 如何使用 node.js 和 Azure 存储表在异步函数中使用 continuationKey

azure - Azure 表的本地替换?

mysql - 如何并行扫描一个大的mysql表?

sql - 优化大型子表的日期查询 : GiST or GIN?

mysql - 在MySQL中使用IN子句更新时如何避免全表扫描

azure - 使用power-shell在azure中注册具有多个订阅的多个资源提供者

azure - 如何查找由 ID 启动的 Azure 事件

c# - 带有 LUIS 的 Microsoft Bot 框架

Angular 9 通用部署问题

Azure 诊断不会将 IIS 日志传输到 Blob 存储