最长的时间,我一直在使用MySQL服务器来处理数据(在JAVA和C#中)。但最近,我一直听到有关LINQ和SQL Server的好消息。我一直在考虑转换,但我对SQL Server知之甚少。
以前使用过SQL Server的任何人都可以在性能和可用性方面定义它与MySQL服务器的对比情况。
我也听说SQL Server对C#更好,因为它基本上是内置的。
答案 0 :(得分:54)
答案 1 :(得分:4)
我经常使用这两种方法,目前正在学习我的Sql Server MCTS,所以我可以在这里提出一些有用的评论。
SQL Server是一个功能更强大的数据库,尤其是2008版本。 MySQL甚至不支持列约束(例如,创建一个int列然后将值约束在1到1000之间 - 不能在MySQL中自动强制执行)。 SQL Server提供全文索引,本机XML列和操作,多种事务模式,复杂的安全产品,复制和分布式功能以及出色的管理套件。
关于您的C#注释,是的,SQL Server能够导入CLR对象,这意味着您可以编译一些.Net代码并将其放入SQL Server并具有使用它的数据库功能。这对于创建新的聚合函数特别有用,因为您可以绕过游标并使用更快的CLR代码循环。
您还可以优化SQL Server到hilt,直到它使用的锁定和隔离模式,以及给定线程可以使用的CPU /内存。
另一方面,MySQL是免费且相对容易设置的,有足够的选项,大多数网站所有者都非常乐意将它用于基本的CRUD应用程序。如果您想使用Linq2Sql,那么您需要SQL Server。如果您需要大量高级功能,那么SQL Server是您的最佳选择。
答案 2 :(得分:2)
我使用过两种方法,但更多的是使用SqlServer。在大型商店中,特别是在DB Architects中出现许多应用程序架构决策的商店中,SQL Server提供了更多。复制,SSIS等等。但是,这些增加了很多复杂性,而且根据我的经验,这是操作中断的很大一部分的来源。
但作为软件应用程序的数据存储区,MySql可以满足您的需求,并且简单,可靠,快速和简单。
严格说来,您真的希望应用程序代码中包含应用程序逻辑,而不是复杂的SQL和约束定义。在数据存储区中查找基础知识,并将保存时间放入程序本身。
答案 3 :(得分:1)
LINQ本身就是一种语言,不依赖于特定的数据库,甚至不依赖于数据库。实际上它只是操纵结构化数据集合的工具。编写DBMS的基础语言在使用它的语言方面无关紧要。
答案 4 :(得分:1)
C#将使用ADO.NET基本相同地访问MySQL和SQLServer(或LINQ - LINQ to SQL与SQL Server绑定,但它似乎没有很长的使用寿命),所以这不会是我想到的一个因素,虽然可能是IDE集成。
SQL Server的好处包括SQL Server中更全面的开发支持,代理和调度,安全模型以及索引,调优和其他功能,如Integration Services,Reporting Services和Analysis Services易于管理大型系统基础设施。
我认为你没有提供足够的关于你的系统的信息,以便在它们之间做出明显的选择。
答案 5 :(得分:1)
从开发(编码)的角度来看,我曾兼作Java开发人员和C#开发人员(在各种项目中都兼顾,因此Java到SQLServer,Java到MySQL,C#到MySQL,C#到SQLServer)。就个人而言,虽然我没有做太复杂的事情,但我并没有真正注意到这一点。我不认为如果你认为会有一个陡峭的学习曲线有太多的担心,除非你想进入一些真正的细节服务器特定的东西。有一些细微的差别,但没有人不会很快接受。
答案 6 :(得分:1)
您是否考虑过像PostgreSQL这样功能更全面的开源数据库。 SQL Server没有任何问题,但是它确实开始将你挂钩到一个许可的软件中,如果你仍然使用开源计数器部分,你可以远离它。这一切都取决于你是否可以。