我正处于Web应用程序的规划阶段,该应用程序将在Azure中托管,其中包含用于Web站点的ASP.NET和用于丰富用户体验的Silverlight.我应该使用Azure Tables还是SQL Azure来存储我的应用程序数据?
Azure表存储似乎比SQL Azure便宜.它的可伸缩性也高于SQL Azure.
如果您已经进行了大量的关系数据库工作,SQL Azure更容易使用.如果您正在移植已经使用SQL数据库的应用程序,那么将其移动到SQL Azure将是明显的选择,但这是我推荐它的唯一情况.
Azure Tables的主要限制是缺少二级索引.这是在PDC '09宣布,目前即将上市,但没有任何时间框架公告.(参见http://windowsazure.uservoice.com/forums/34192-windows-azure-feature-voting/suggestions/396314-support-secondary-indexes?ref=title)
我已经看到了建议使用混合系统,其中您使用表和blob存储来存储大量数据,但是使用SQL Azure进行索引,搜索和过滤.但是,我自己还没有机会尝试这种解决方案.
将二级索引添加到表存储后,它将基本上是基于云的NoSQL系统,并且比现在更有用.
尽管SQL Azure表和表存储具有相似的名称,但它们的共同点很少.
以下是两个可能对您有帮助的链接:
表存储,100倍的成本因素
表存储上的胖实体
基本上,第一个问题应该想知道我的应用程序是否真的需要扩展?如果没有,那么去SQL Azure.
对于那些试图在两个选项之间做出决定的人,一定要将报告要求纳入等式. SQL Azure Reporting和其他报告产品支持SQL Azure开箱即用.如果您需要生成复杂或灵活的报告,您可能希望避免使用表存储.