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

时间:2010-04-15 15:55:53

标签: mysql sql-server database

我们目前有一个10年前讨厌的,意大利面条代码风格的SQL Server数据库,我们很快就会从头开始重新编写,作为重写大型Web应用程序的一部分。 (现有应用程序将作为app的下一个版本的功能要求)新版本将在.Net中开发,因此应用程序堆栈的很大一部分将基于Microsoft技术(Visual Studio将使用IIS将是应用程序服务器。)

该项目的一位开发人员提出了切换到MySQL而不是SQL Server的可能性,以节省数据库服务器许可证的成本,以及设计和操作数据库的工具(如作为非常免费的MySQL Workbench)。

使用SQL Server与MySQL作为复杂.Net项目的数据库有哪些各种利弊?价格是我们已经确定的一个因素,无论是数据库服务器许可证还是操纵数据库的工具,还有其他因素发挥作用?

7 个答案:

答案 0 :(得分:6)

我的MySQL与SQL Server for .NET项目的pro / con列表将是:

MySQL的优点:

  1. 费用
  2. SQL Server的优点:

    1. 更好的工具支持,特别是对于.NET(实体框架+其他ORM支持更好)
    2. 更好的Visual Studio支持
    3. 更好的集成支持,特别是如果您想要执行Silverlight + RIA等等。

答案 1 :(得分:5)

答案 2 :(得分:4)

使用SQL Server,您可以在实体类和数据库模式之间实现更好的工具集成(例如设计器)。

您可以拖动数据库并将其放入设计器中,然后中提琴!映射到表及其关系的所有实体都将生成。 alt text http://www.scottgu.com/blogposts/linqtosql/step1.jpg

至于MySQL,显然许可成本是一个优势

答案 3 :(得分:0)

听起来这是一个你正在研究的大型项目。使用SQL Server与MySql相比,显然许可成本会更高,但使用MySql也会产生许多隐藏成本。

如果这是一个非常大的项目,并且您的开发团队已经接受过SQL Server培训,则与数百小时开发时间相比,SQL Server许可证的额外成本是非常复杂的。

答案 4 :(得分:0)

除了本页的其他答案外,我还会考虑以下内容:

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

答案 5 :(得分:0)

SQL Server专业人员:

  • 所有表格上的交易(快速引擎和安全引擎之间没有选择)
  • 在SQL Server中,当子查询是编写查询的最自然方式时,您可以继续执行此操作。特别是对于派生表和Where Exists子查询,不太可能存在性能损失。
  • 您从MS遇到的任何样本都将使用SQL Server。在我目前的工作中,不得不将所有内容翻译成Oracle总是令人讨厌。
  • 我发现SQL Server中的派生列非常方便,但它们可能会混淆ORM。
  • MySQL是否支持外键或检查约束?

答案 6 :(得分:0)

如果使用.NET,我个人会坚持使用MSSQL。 正如一些人之前建议的那样,它更加适合工具。

但Java有一些非常友好的MySQL环境。如果您不介意使用Java,请尝试一下。带有Java Persistance API的NetBeans IDE非常适合MySQL:)