Ale*_*der 3 sql database-design azure azure-storage
我处于典型社交网络类型的Web应用程序的规划阶段.它将包含个人资料,消息,即时聊天,专辑,群组,虚拟礼物等......
确定哪些数据应存储在SQL Azure中以及哪些数据应存储在表存储中的决定因素是什么?
在Azure之前,所有关系数据都将存储在SQL服务器中,然后使用数据对象和页面进行内存缓存,输出缓存将用于提高性能并减轻SQL服务器负载.
Azure Table Storage如何适应/改变这种方法?
SQL Azure
在SQL Azure的积极方面 - 它可以自由访问(无需存储事务处理)并且易于使用(关系,开发人员熟悉,可以建模而不必担心未来的查询将如何工作,等等)
从消极方面来看,SQL Azure不具备大规模可扩展性 - 即使使用Federations,每个数据库或联合成员仍然与其他数据库存在于多租户环境中,并且它们在同一服务器上相互竞争磁盘,CPU,RAM等.
从定价的角度来看,在SQL Azure中存储数据比在Azure表存储中存储更昂贵,但访问它是免费的(调用SQL Azure数据库不需要任何费用)
Azure表存储(ATS)
在Azure存储的积极方面 - 它具有巨大的可扩展性,可以支持非常大的数据量.基本上,ATS背后没有"关系型大脑",就像SQL Server背后有一个大脑.因此,您不受单个大脑的限制,并且您将所有关系活动委派给您自己的服务器/实例,您可以拥有任意数量的服务器/实例.这使您具备超大规模的能力.
从消极方面来说,ATS更难以使用,因为您必须非常特别地为您的查询建模您的密钥(PartitionKey和RowKey).您甚至可能需要以多种方式复制数据,以便将来可以非常简化对该数据的访问并适当地使用PartitionKey/RowKey.
从定价的角度来看,ATS对于存储数据来说是便宜的,但每次访问它时都会收费(每次交易都需要付费).价格最近下降了10倍,但仍需要考虑,作为预算的一部分
建议
需要大规模时使用ATS.例如,如果你有像Facebook这样的社交网站,那么提供规模的最重要的地方就是新闻Feed组件 - 因为这些数据经常被大量访问,需要非常快.
使用SQL Azure进行分层数据存储,其中关系是最重要的,并且数据不是超级频繁访问的.例如,您的用户的个人资料信息(电子邮件/地址/登录/偏好/等).
| 归档时间: |
|
| 查看次数: |
1979 次 |
| 最近记录: |