Azure Table 存储与 Azure 文档数据库 - 性能比较?

Azure Table Storage vs Azure Document DB - performance comparison?

所有其他条件相同(关于功能要求、数据要求等),在以下功能中速度更快:

拜托,我正在寻找这些原始函数的直接比较,假设在功能要求方面可以同样有效地使用其中任何一个的场景。

您是在比较苹果和橘子,对于您应该选择一个还是另一个的场景没有正确答案。但是 objective只是,存在一些离散的差异:

  • Table 存储支持每个分区每秒最多 2,000 个事务(由您选择的分区键决定),整个存储帐户每秒最多支持 20,000 个事务。无法保证交易数量,并根据实体大小而有所不同
  • DocumentDB 虽然不提供每秒 "transactions",但提供每秒 "Request Units" 的保证级别。通过衡量您的各种查询,您可以扩展数据库以提供您的应用程序所需的等效每秒事务数。 DocumentDB,通过允许您调整给定集合的 RU,有效地让您扩展到比使用 Table 存储更大的事务率(您当然可以利用多个存储帐户来提高您的有效 table 存储事务速度)。 DocumentDB 为每个集合(标准集合)提供最多 10K RU/sec 或 250K RU/sec(分区集合),根据支持,可以根据需要提高限制。
  • Table 存储支持实体组事务,允许将最多 100 个实体(和最多 4MB 有效负载)的操作分批处理到单个原子事务中。事务绑定到单个分区。
  • DocumentDB 允许在集合范围内发生事务。如果在一个存储过程中执行多个数据库操作,这些操作将自动成功或失败。
  • Table 存储是一个 key/value 存储,分区键 + 行键的查找产生非常有效的点查找。一旦开始检查 PK/RK 以外的属性,您将进入 space 分区扫描或 table 扫描。
  • DocumentDB 是一个文档存储,您可以索引文档中的 any/all 个属性。

  • Table 每个帐户的存储扩展到 500TB。

  • DocumentDB 每个集合可扩展到 250GB,如果您请求额外的存储空间(例如 500TB),则更多。
  • Table 存储通过存储访问密钥提供安全性。有一个主存储帐户密钥,以及生成共享访问签名以提供对特定 table 的特定访问权限的能力。
  • DocumentDB 具有 read/write 和只读管理密钥,以及对 collections/documents

  • 的用户级访问权限
  • Table 存储和 DocumentDB 具有非常不同的定价模型(其中 Table 存储只是每月每 GB 的成本,以及交易的名义成本).但回到我的苹果与橘子的观点:DocumentDB 是一个 数据库引擎 - 查询语言、服务器端过程、触发器、索引等

我确定我错过了一些 objective 比较,但这应该为您提供一个很好的起点,让您决定使用一个、另一个或两者。您如何选择将这些应用到您的应用程序中完全取决于您,以及您的优先级是什么(规模?查询?成本?等...)。