我已阅读有关Stack Overflow和其他大型网站的高可伸缩性的this article。许多大型高流量.NET站点如lotsoffish.com,MySpace和Stack Overflow都使用.NET技术并将SQL Server用于其数据库。在文章中它说Stack Overflow中的一个消息来源说:
随着您添加越来越多的数据库 服务器SQL Server许可证成本 可能是离谱的。所以开始吧 扩大规模并逐步扩大规模 使用非开源软件,你可以 处于经济损失的世界。
为什么这些网站不使用MySQL而不是SQL Server?
答案 0 :(得分:9)
加入AJ所说的......记住Facebook还支付C程序员来破解MySQL代码以及PHP代码,以便让他们能够“很好地”处理他们获得的流量。
Facebook过去和今年已经发表声明,希望他们做出更好的选择。
事实上,对于编码,他们现在正在使用HipHopPHP将PHP编译为C ++代码,并且大约90%的服务器运行C ++二进制文件而不是PHP脚本。
他们的MySQL数据库可能会节省一两分钱,但维护它,扩展它等的成本非常高。
与MySQL相比,像Oracle这样的产品确实可以让您无缝扩展。
我现在有一个网站,在我的数据库上使用大量带宽,大量查询,事实上,扩展是MySQL的痛苦,他们的Clustering产品不是很好,需要一个执照。 Oracle现在拥有最好的“网格”数据库设置,但成本却很疯狂......
另外,我也编写了C#代码。让我告诉你,与MySQL相比,将企业级站点与SQL Server集成起来要容易得多。
答案 1 :(得分:7)
我猜这可能是因为它真的真的很容易开始使用ASP.NET连接到SQL Server的网站。对于您提到的网站,上市速度可能比让“正确”的架构更重要(更不用说SQL Server是或者不是正确的选择 - 只是说上市速度是优先考虑的因素)。请记住,开发人员的工作是发布软件。
只要避免使用过多的数据库特定功能,以适度的努力切换到不同的数据库就相对简单了。但是,除非你的网站变得非常受欢迎,否则为什么还要费心呢?
编辑:如果你变得非常受欢迎,你甚至可能想进入NoSQL的土地。
答案 2 :(得分:6)
虽然这并没有直接回答你的问题,但我真的要反驳你关于令人发指的许可费用的评论。所有企业级商业软件都具有很高的价格标签,因为它具有VALUE值。如果它没有那个价值,它就不会是一个成功的产品。
SQL Server的定价极具竞争力,其TCO远低于Oracle。决定使用MS SQL Server的另一个原因是,在Microsoft堆栈上开发的大多数商店都是Windows Server商店。 MS SQL Server专为Windows Server构建,因此可以尽可能完美地与操作系统集成。许多其他产品并非主要和单独为Windows Server开发,因此会导致功能差异和环境问题。
这些环境问题可能会进一步加剧这样一个事实:大型商店将主要采用具有特定堆栈背景的系统管理员,因此在.NET商店中,大多数系统管理员都能在Windows Server中流利,必须支持当您是一家大型企业时,多个操作系统成为一项巨大的成本,特别是在风险管理方面。
答案 3 :(得分:6)
重复别人说的话。我在公司和金钱工作,可以说,在涉及到这些问题时,这并不重要。决策的依据是“我们可以从供应商那里得到什么样的支持”,“市场上有多少技术人员”,“供应商的声誉”等等。
我认为MySQL或SQL Server的采用者有两个不同的组。
私人拥有的大型网站,没有额外的财务资源。这些网站通常会运行MySQL。自然。
公司建立的大型网站。这些站点将运行公司内接受的任何数据库技术。 Money并没有决定这个决定,但更多的人可以支持这个软件和开发。
答案 4 :(得分:5)
没有Microsoft SQL Server Management Studio。真的。在那里完成了许多工作,而不是在开源软件世界中发生的原始SQL。
答案 5 :(得分:4)
当技术堆栈是同质的时,事情要容易得多。
如果您希望MySQL支持Linq-to-SQL,祝您好运。它仍然非常不成熟。使用SQL Server,这是一个拖放的问题。字面上。
您还可以在Visual Studio for SQL Server中执行数据库查询。我从来没有尝试过任何其他数据库,但我不相信你能够。
很高兴地说'哦,MySQL比SQL Server便宜得多。'是的。但我不确定整合成本是否值得;更不用说如果出现问题,必须依靠Yet Another Vendor来提供支持。
答案 6 :(得分:2)
你用你所知道的......
(恕我直言)微软工具堆很棒。它运作良好,随着技术的发展,我们随之学习并随之成长。当你习惯它时,它变得更容易使用(它的怪癖和特质)。
MySQL也是一个出色的工具。它运作良好,效果很好。我们都可以就哪种工具最好进行宗教战争,但要记住它只是完成工作的工具。
现在让我们考虑软件的成本 - 2年前的Plenty of Fish赚了700万美元,你真的认为他们关心他们的数据库/服务器软件的成本是多少吗?因此,BizSpark 3年的成本是0美元(这会受到伤害)。
对于持怀疑态度的人来说,FaceBook在30K服务器上运行MySQL,MySQL Enterprise Unlimited许可证价格为4万美元,所以这也不一定便宜。
我不了解你,但对我而言,当我赚了大量现金时,我真的不在乎它的“花费多少”,因为我用它做得更多,而不是没有它!
答案 7 :(得分:1)
我会说因为以下原因:
我想提一下有些人正在使用SQL Server,是的,但他们使用的是SQL Server Express Edition。虽然他们是否知道发布或商业化SQL Server Express Edition的解决方案,根据微软的EULA对该产品的解释,您的解决方案也是一个免费解决方案,因为EULA声明您需要提供解决方案您的客户,您的客户可以自由地与希望的人共享您的商业解决方案,因为它位于SQL Server Express上。虽然已经说明了,但有些人继续使用SQL Server Express而没有告知客户这些信息。大多数普通客户都不会知道这一点,他们会尊重他们与解决方案供应商的合同。
此外,正如我认为我已经上面写的那样,有些人不关心价格,但他们有使用商业产品(如SQL Server和其他软件产品)的政治原因。在某些地方,资金不是最重要的因素,而是售后服务等。他们直接需要专业的工程师或支持团队,而不一定是提供类似MySQL的社区。 p>
希望这有点儿。
答案 8 :(得分:0)
嗯,首先,还有其他更好的免费数据库(例如PostgreSQL)。另一方面,微软的生态系统旨在吸引你,让你与雷德蒙德的人一起花费越来越多。
答案 9 :(得分:0)
真正的原因是人们通常使用MS SQL Server,因为.NET来自同一品牌。例如,PHP人员总是喜欢MySQL而非其他数据库。这是所有的心态,人们不想冒任何风险。
答案 10 :(得分:0)
任何大型企业网站都不会那么关心许可成本。他们想要的是快速,可靠的数据访问和访问公司技术支持。他们还想要一些可以很容易地按比例分配的东西,这是为大型数据库设计的。他们还希望轻松提供性能调优专家,数据仓库和商业智能专家,数据库开发人员和数据库管理员。 SQL Server和Oracle都符合这些标准。我真的不认为MySQL有很多人有资格设计和监控大型系统。我不确定它是如何叠加在分区和可扩展性上的。
答案 11 :(得分:0)
这只是文化。人们将自己组织起这很自然。喜欢开源的人自然会选择LAMP(Linux,Apache,MySQL和PHP)作为同类项目,喜欢企业支持的人选择Microsoft IIS,Microsoft SQL Server和Microsoft .NET。这涉及到很多人类心理,不要搞错。没有什么可以阻止人们使用带有PHP和MySQL的IIS,或者使用带有Microsoft SQL Server的Apache,但其方式如上所述。
较短的时候,大型网站也会使用其中任何一个,但是,通常不是你们一起提到的那两个。
答案 12 :(得分:0)
我相信乔治有它的标记:“同质”。
Microsoft的大多数技术都是为了协同工作而构建的。 .NET和SQL Server之间存在直接挂钩,以提供.NET和MySQL之间不存在的缓存管理等附加功能。
IIRC,MySQL没有内置缓存管理,这就是Ehcache和memcached存在的原因。
约书亚的评论是:“与MySQL相比,像甲骨文这样的产品确实可以让你无缝扩展。”多年前,Sabre picked MySQL over Oracle基于成本和功能集的一些高规模项目。除非您能通过成本/收益分析证明为什么Oracle是项目的更好选择,否则AFAIK仍然会选择Oracle。我认为它实际上归结为功能,用户知识库和互操作性。
有时候SQL Server是更好的匹配,有时它是MySQL,有时它是Oracle。
答案 13 :(得分:0)
我正在编写ASP.NET MVC2站点,其中MySQL作为后端(主要是由于许可成本)我已经实现了DbLinq,但它也意味着编写自定义成员/角色提供程序,以及一般调整数据层。它绝对可行,但它并不像坚持使用MS SQL Server那么简单。我也希望将该站点移到Linux服务器上运行的Mono 2.7(一旦发布),以避开服务器许可问题。