Azure存储表与SQL

我刚刚开始学习Azure,我不能看到太多的情况下,你想把东西放入Azure存储表,而不是SQL。 我想也许我习惯于在需要相关数据的环境中工作?

什么时候把某些内容放入Azure存储表而不是放在Azure SQL数据库的表中?

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

Azure存储表是非常好的,当你需要处理集中的结构化数据而没有关系,而且通常是大量的。

价格:SQL Azure:5GB $ 25.98 /月

存储表:175 GB(无交易或带宽)为$ 21.88 / m所以当你存储大量的数据时,存储表要便宜很多…想想logging的例子。

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

速度:如果devise正确的话,在许多情况下,存储表应该比sql azure更快,但是这可能取决于用例,我没有真正testing过。

虽然我在这篇文章中join得太晚了,但我确实想提一件看起来没有被覆盖的东西。 Azure SQL有数据限制(很快会上升,我怀疑)。 networking版为5 GB,商业版为150 GB。 对于某些解决scheme,这是完全适合的 但对于其他人来说,可能并不是我亲自遇到过的。

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

而且,虽然NoSQL本质上是非关系的,但这不一定是坏事。 我们经常认为我们需要关系,事实上,如果我们以不同的方式思考我们的问题,我们可能不会这么做。 你可以在代码本身中强制执行关系 – 我怀疑大多数开发者做的比自己真正想的要多得多。

这篇文章应该有助于澄清一些涉及到的差异。

http://msdn.microsoft.com/en-us/magazine/ff796231.aspx

如果出现以下情况,我会尽量使用azure色的表格作为更便宜的解决scheme:

  • 我只是通过PK来执行表select(由于整个反序列化,所以属性select慢)
  • 我可以忍受有限的Linq集合( 查询操作符(Table Service Support)
  • 我不需要连接表并在服务器上执行复杂的查询
  • 我需要水平分割“分片”我的数据(Sql Azure联盟是从表中的第一天PartionKey

您应该阅读“NoSQL”的优点http://en.wikipedia.org/wiki/NoSQL

非关系型数据库,没有模式,大数据,规模仅举几例!