什么是大型网站不使用MySQL与ASP.NET的原因是什么?

时间:2010-04-01 00:25:08

标签: asp.net sql mysql sql-server scalability

我已阅读有关Stack Overflow和其他大型网站的高可伸缩性的this article。许多大型高流量.NET站点如lotsoffish.com,MySpace和Stack Overflow都使用.NET技术并将SQL Server用于其数据库。在文章中它说Stack Overflow中的一个消息来源说:

  

随着您添加越来越多的数据库   服务器SQL Server许可证成本   可能是离谱的。所以开始吧   扩大规模并逐步扩大规模   使用非开源软件,你可以   处于经济损失的世界。

为什么这些网站不使用MySQL而不是SQL Server?

14 个答案:

答案 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的采用者有两个不同的组。

  1. 私人拥有的大型网站,没有额外的财务资源。这些网站通常会运行MySQL。自然。

  2. 公司建立的大型网站。这些站点将运行公司内接受的任何数据库技术。 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)

我会说因为以下原因:

  1. 与Microsoft产品一起使用时,Microsoft集成得非常好;
  2. 虽然使用SQL Server,但可以使用免费的Express版本,可以用来托管网站;
  3. 随着.NET Framework的推出,微软在学校的竞争对手中获得了很多优势,从而使SQL Server成为众所周知的数据库引擎;
  4. Microsoft产品可与其他Microsoft产品更好地配合使用;
  5. 有两种方法可以授权SQL Server,每个客户端(CAL)和每个服务器处理器或类似的东西。对于站点主机,可能有这样使用SQL Server的优势;
  6. 其他数据库引擎,例如MySQL,PostgreSQL,Firebird等都有它们的语法差异,因此使SQL Server TSQL成为一个明智的选择,因为能够更容易地与SQL Server交互的人数;
  7. 与其他成本较低的解决方案相比,使用SQL Server可能还有其他一些与政治相关的原因。
  8. 我想提一下有些人正在使用SQL Server,是的,但他们使用的是SQL Server Express Edition。虽然他们是否知道发布或商业化SQL Server Express Edition的解决方案,根据微软的EULA对该产品的解释,您的解决方案也是一个免费解决方案,因为EULA声明您需要提供解决方案您的客户,您的客户可以自由地与希望的人共享您的商业解决方案,因为它位于SQL Server Express上。虽然已经说明了,但有些人继续使用SQL Server Express而没有告知客户这些信息。大多数普通客户都不会知道这一点,他们会尊重他们与解决方案供应商的合同。

    此外,正如我认为我已经上面写的那样,有些人不关心价格,但他们有使用商业产品(如SQL Server和其他软件产品)的政治原因。在某些地方,资金不是最重要的因素,而是售后服务等。他们直接需要专业的工程师或支持团队,而不一定是提供类似MySQL的社区。

    希望这有点儿。

答案 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)

  1. 单一来源时兼容性较低。
  2. MS SQL Server是ASP.NET应用程序的“默认”数据库(请参阅LINQ to SQL,ADO.NET,ApplicationServices等)
  3. 其他数据库的不成熟的.NET工具。例如,如果您坚持使用MS SQL Server,则不必担心不支持的功能或功能,其他数据库可能没有完全支持(例如DbLInq等)。
  4. MS SQL Server也可以免费入门(SQL Server Express),一旦你准备上市,就很难改变数据层。
  5. 我正在编写ASP.NET MVC2站点,其中MySQL作为后端(主要是由于许可成本)我已经实现了DbLinq,但它也意味着编写自定义成员/角色提供程序,以及一般调整数据层。它绝对可行,但它并不像坚持使用MS SQL Server那么简单。我也希望将该站点移到Linux服务器上运行的Mono 2.7(一旦发布),以避开服务器许可问题。