使用SQL Server而不是MySQL的原因是什么,特别是在复杂的.Net项目中?

10
我们目前有一个10年历史的、混乱不堪的SQL Server数据库,即将作为对大型Web应用程序重写的一部分而几乎全部重新编写。(现有应用程序将作为下一个版本应用程序的功能要求)新版本将使用.Net开发,因此应用程序堆栈的大部分将基于微软技术(将使用Visual Studio, IIS将是应用程序服务器)。该项目中的一名开发人员提出了使用MySQL替代SQL Server以在DB服务器授权以及设计和操作DB的工具(如免费MySQL Workbench)方面节省成本的可能性。对于复杂的.NET项目来说,使用SQL Server与MySQL作为数据库的利弊如何?我们已经确定价格是一个因素,包括DB服务器许可证以及操作DB的工具,但还有哪些其他因素需要考虑?

你的数据库是否足够大,无法使用免费的 Microsoft SQL Server Express 版本? - Michael Maddox
在这种情况下,这是一个相当大的 Web 应用程序,具有数十 GB 级别的数据库(因此并不太大),但是有很多流量,并且未来 6-9 个月可能会有很大增长。 - cdeszaq
7个回答

6

我对于.NET项目中MySQL和SQL Server的优缺点列表如下:

MySQL的优点:

  1. 成本更低

SQL Server的优点:

  1. 更好的工具支持,特别是对于.NET(Entity Framework +其他ORM支持要好得多)
  2. 更好的Visual Studio支持
  3. 更好的集成支持,特别是如果您想做Silverlight + RIA等操作。

6

1
+1 - 一个好的回答。其他人关注有趣的视觉方面,而不是数据库技术上的差异(呵呵)。 - TomTom

4
使用SQL Server,您可以在实体类和数据库模式之间获得更好的工具集成(例如设计师)。只需将数据库拖放到设计师中,就可以生成映射到表及其关系的所有实体。alt text
(来源:scottgu.com 至于MySQL,显然授权成本是一个优势。

0

听起来你正在进行一个大型项目。显然,使用SQL Server的许可证成本比使用MySql更高,但是使用MySql也有许多隐藏成本。

如果这是一个非常大的项目,并且你的开发团队已经接受了SQL Server的培训,那么与数百小时的开发时间成本相比,SQL Server的许可证附加成本微不足道。


开发人员目前接受的“培训”是使用SQL Management Studio进行基本操作,包括编写SQL查询和使用表设计器布置字段。 - cdeszaq

0

除了本页上的其他答案,我还会考虑以下几点:

  1. MS SQL具有数据库镜像功能-如果您需要高可用性和自动故障转移,则应考虑此功能。
  2. 专家的本地可用性。您应该进行一些研究,以了解当地专家帮助的选择。当您的数据库死机时,您不希望突然发现没有本地帮助可用。

0

SQL Server 优点:

  • 所有表格都支持事务(无需在快速引擎和安全引擎之间选择)
  • 在 SQL Server 中,当子查询是编写查询的最自然方式时,您可以直接使用它。特别是对于派生表和 Where Exists 子查询,不太可能存在性能损失。
  • 您遇到的来自 MS 的任何示例都将假定为 SQL Server。在我的当前工作中,不得不将所有内容翻译成 Oracle 总是很麻烦。
  • 我发现 SQL Server 中的派生列非常方便,尽管它们可能会混淆 ORM。
  • MySQL 是否已支持外键或检查约束?

MySQL服务器支持外键和检查约束(如果您使用InnoDB)已经很久了,早在您编写此答案之前。 - Kmeixner

0

如果使用.NET,我个人会选择坚持使用MSSQL。正如之前一些人建议的那样,它更加友好。

但Java与MySQL结合也有相当友好的环境。如果你不介意使用Java,可以试试。带有Java Persistence API的NetBeans IDE真的很适合MySQL :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接