【发布时间】:2011-11-13 13:40:25
【问题描述】:
我想有一个相对简单的问题,在网上搜索后,我已经知道了一些答案,但需要更多建议。我是幕后数据库管理机制的新手。
我想使用 REST Web 服务与移动用户(手机用户,主要是 Android 和 iPhone)进行通信。 Web 服务是用 C# 编写的,并通过简单快速的查询(如 SELECT EmployeeID, FirstName, LastName, HireDate, City FROM Employees WHERE City = 'London')查询 Microsoft SQL Server 2008 数据库——所有这些字段都被索引以实现最高速度。 Web 服务是“按调用”的,这意味着它们是无状态的,理论上非常可扩展。
不过,我的问题是 Web 服务将由第三方托管,例如 GoDaddy。我过去使用过这个第三方,并且他们提供一些简单的 Web 服务没有问题,每分钟点击一两次,但是如果我开始每分钟有 100000 人访问它们,会发生什么?我问过他们,我认为他们并没有真正理解这个问题(或者他们可能理解了——但我不确定),他们只是说:'如果你的带宽超出了你的带宽,只需以我们 xx 美元的价格购买更多/MB 每月等。但我想在这里问某人:我的解决方案是否可扩展?我问这个是因为有人说要购买服务器——但对于初学者来说,我不想这样做,除非我确定这个第三方无法满足我的需求。
所以,具体来说:REST Web 服务,用 C# 编写,传递 XML,由 Microsoft SQL Server 2008 托管,每次调用,缓存的数据库和 Web 服务方法,并由第三方托管(您支付它们的费用)每月 XYZ 带宽),并且涉及简单、具体、快速的 SQL 查询——这种设置是否可扩展?它每秒可以处理 2000 次点击吗? 20000? (当然假设您向托管这些 Web 服务和数据库的第三方支付更多带宽) 我在某处读到 Microsoft SQL 服务器每秒可以处理 2000 个连接,但我不确定这是否正确或是否适用?我知道 Web 服务不限于访问单个数据库——或者我错了吗?如果 Web 服务受一个数据库的限制,我可以重写我的代码,以便使用两个或多个数据库(即,有一个连接字符串,所以如果“伦敦”是 SQL 查询城市,那么使用数据库 #1,如果“巴黎”是城市,使用数据库 #2 等)。这是真的吗?
对不起,如果这个问题对您的数据库专业人员来说太简单了,但您必须从某个地方开始。提前谢谢你。
【问题讨论】:
-
可扩展是什么意思?
-
理想情况下,我希望不必担心使用 GoDaddy 托管我的 Web 服务的“幕后”所做的事情。也就是说,我在单个数据库上获得的来自世界各地人们的点击次数越多,GoDaddy 就会“弄清楚”如何让一切正常工作,也许他们甚至不必拆分数据库?例如,您可以在 SQL Server 2008 中轻松容纳 20 亿条记录(每个用户 1 条),是吗?既然这个数据库在设计上没有并发问题,那么有什么问题呢?随着越来越多的人 ping 数据库,GoDaddy 会向我收取越来越多的费用,对吗?这是可扩展的吗?
标签: database performance web-services