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

Azure表存储与Azure文档数据库-性能比较?,azure,azure-cosmosdb,azure-table-storage,Azure,Azure Cosmosdb,Azure Table Storage,在所有其他条件相同的情况下(关于功能要求、数据要求等),在以下功能中速度更快: 插入 更新 阅读 删除 请注意,我正在寻找这些原始函数的直接比较,假设在功能需求方面两者都可以同样有效地使用。您正在比较苹果和桔子,对于您应该选择其中一个与另一个的场景,没有正确的答案。但客观上,存在一些离散的差异: 表存储支持每个分区每秒2000个事务(由您选择的分区键决定),整个存储帐户每秒20000个事务。交易数量没有保证,并且根据实体大小而变化 DocumentDB虽然每秒不提供“事务”,但每秒提供“请

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

  • 插入
  • 更新
  • 阅读
  • 删除

请注意,我正在寻找这些原始函数的直接比较,假设在功能需求方面两者都可以同样有效地使用。

您正在比较苹果和桔子,对于您应该选择其中一个与另一个的场景,没有正确的答案。但客观上,存在一些离散的差异:

  • 表存储支持每个分区每秒2000个事务(由您选择的分区键决定),整个存储帐户每秒20000个事务。交易数量没有保证,并且根据实体大小而变化
  • DocumentDB虽然每秒不提供“事务”,但每秒提供“请求单位”的保证级别。通过测量各种查询,您可以扩展数据库,以提供应用程序所需的每秒同等数量的事务。DocumentDB通过允许您调整给定集合的RU,有效地使您可以扩展到比表存储更大的事务速率(您当然可以利用多个存储帐户来提高有效的表存储事务速率)。DocumentDB为每个集合(标准集合)提供高达10K RU/秒或250K RU/秒(分区集合),并且可以根据需要提高每个支持的限制
  • 表存储支持实体组事务,允许将最多100个实体(以及最多4MB负载)的操作批处理到单个原子事务中。事务绑定到单个分区
  • DocumentDB允许事务在集合的范围内发生。如果在一个存储过程中执行多个数据库操作,则这些操作会自动成功或失败
  • 表存储是一个键/值存储,对分区键+行键的查找产生非常有效的点查找。一旦您开始检查PK/RK以外的属性,您将输入分区扫描或表扫描的空间
  • DocumentDB是一个文档存储,您可以为文档中的任何/所有属性编制索引

  • 表存储扩展到每个帐户500TB

  • DocumentDB可扩展到每个集合250GB,如果您请求额外存储(例如500TB),则会增加容量
  • 表存储通过存储访问密钥提供安全性。它有一个主存储帐户密钥,并且能够生成共享访问签名,以提供对特定表的特定访问权限
  • DocumentDB具有读/写和只读管理键,以及对集合/文档的用户级访问

  • 表存储和DocumentDB有非常不同的定价模型(表存储只是每月每GB的成本,以及事务的名义成本)。但回到我的苹果vs橙子的观点:DocumentDB是一个数据库引擎——查询语言、服务器端过程、触发器、索引等等


我肯定我错过了一些客观的比较,但这应该给你一个很好的起点,让你决定使用其中一个,另一个,或者两者兼用。你如何选择将这些应用于你的应用程序实际上取决于你自己,以及你的优先事项是什么(规模?查询?成本?等等)。

David,谢谢你的回答。这几乎告诉了我我需要知道什么,并为我提供了一个很好的起点,以便在需要时发现更多。我知道我是在比较苹果和桔子,这就是为什么我说“所有其他事情都是平等的。”——)