64

我刚开始学习 Azure,我看不到太多场景,您希望将某些内容放入 Azure 存储表而不是 SQL。我想也许我习惯于在需要相关数据的环境中工作?

何时将某些内容放入 Azure 存储表而不是放入 Azure SQL 数据库的表中更好?

4

3 回答 3

70

当您想使用关系、索引、约束等处理结构化数据时,SQL Azure 非常棒。

当您需要处理没有关系且通常具有大量数据的集中式结构化数据时,Azure 存储表非常有用。

价格:SQL Azure:5GB 25.98 美元/月

存储表:175 GB 为 21.88 美元/米(不含事务或带宽)因此,当您存储大量数据时,存储表要便宜得多……例如考虑日志记录。

集中化:Windows Azure 是服务器的分布式环境,所以如果你在一台机器上保存一些东西,其他人不会知道它,因此存储表是集中登录、会话处理、设置或其他任何东西的好解决方案(请记住即使在一个数据中心也存在延迟)

速度:如果设计得当,在许多情况下存储表应该比 sql azure 快,但这可能取决于用例,我还没有真正测试过。

于 2012-04-21T10:57:32.563 回答
32

虽然我在这篇文章中添加较晚,但我确实想提一件事似乎没有被涵盖。Azure SQL 有数据限制(我怀疑很快就会增加)。网络版 5 GB,商业版 150 GB。对于某些解决方案,这是完全足够的。但对其他人来说,可能不是,我个人也遇到过。

Azure 表的磁盘上限要高得多。我相信它的 100 TB。

此外,虽然 NoSQL 本质上是非关系型的,但这并不一定是坏事。我们经常认为我们需要关系,而事实上,如果我们以不同的方式思考我们的问题,我们可能就不需要这么多了。您可以在代码本身内强制执行关系——我怀疑大多数开发人员做的事情比他们真正想象的要多得多。

于 2013-05-03T16:19:22.927 回答
13

如果出现以下情况,我将始终使用 azure 表作为更便宜的解决方案:

  • 我只通过 PK 执行表选择(由于整个反序列化,属性选择很慢)
  • 我可以忍受有限的 Linq 集(查询运算符(表服务支持)
  • 我不需要加入表并在服务器上执行复杂的查询
  • 我需要对我的数据进行水平分区“分片”(Sql Azure Federations 是朝着这个方向迈出的一步,表从第 0 天开始就有 PartionKey
于 2012-04-21T12:59:56.217 回答