MYSQL和SQL Server 2014 Express有什么区别?


回答 1:

作为每天都使用MySQL和SQL Server 2014的人,我可以告诉您我认为主要的区别(以及每个人的我自己的好恶)

SQL语言实现

SQL Server本身具有悠久的历史,他们基于每个查询都需要一个执行计划的前提构建了一个引擎,您在SQL Server中拥有更好的工具,可以通过可视化分析查询的成本来优化查询。 MySQL缺乏这种分析工具,或者您必须为此付费。

在MySQL中,您可以执行以下操作:从1,2 3的ztable组中选择a,b,c + y,count(d)作为计数器。在SQL Server中,您必须执行以下操作:选择a,b,c + y,count( d)作为ztable组中a,b,c + y的计数器。

在MySQL中,您可以使用LIMIT子句来限制查询。 例如:

SELECT * FROM SomeTable限制50,10。 这样就可以从查询结果中获得50到59行。对于许多事情来说,它很有用。

SQL Server仅使用此SELECT * FROM dbo.SomeTable偏移量50行,下一步仅行10行。

您可以执行相同的操作,但是需要在SQL Server上编写更多内容。

在MySQL中,您可以使用if(some_condition = true,useThisValueIfTrue,useThisValueIfFalse),也可以使用CASE:当a = true时将CASE设为THEN 1 ELSE 0 END作为SomeValue。 在SQL Server中,只有CASE。 这给您增加了很多麻烦,您可以在每个查询中编写代码。

现在,另一方面,SQL Server在复杂查询方面有更多选择,有PIVOT可以创建CROSSTAB查询,有CROSSJOIN,还有许多其他功能使SQL Server对于高级查询而言真的很酷。

在MySQL中插入数据时,您可以执行以下操作:

插入mytable集a = value,b = anothervalue。

在SQL Server中,您只能使用经典版本:

插入mytable(a,b)值(值,另一个值)

要么

插入mytable值(值,另一个值)

现在,在2、3、4列中,这可能并不是最麻烦的事情,但是当您推入40、50列时,要插入而不会犯错是很痛苦的,特别是在涉及复杂的计算值时。

因此,对我来说,MySQL在简单查询(甚至2-3个表查询)上轻松击败SQL Server。 但是对于冗长而复杂的查询,SQL Server为王。

备份

再次,SQL Server是在考虑复杂情况的基础上构建的,至少有3种方法可以进行完整备份,并且有复杂的增量备份,二进制文件,文件系统和脚本。 您可能应该坚持使用二进制文件,但是在还原SQL SERVER时需要注意很多安全问题。 在SQL Server中还原备份不是非常规的。 您需要知道您在做什么,否则您可能会弄乱数据库。 还除非您的数据库非常小,否则我永远不会建议您在SQL SERVER上使用SQL File Restore,它会花费很多时间,有时转储会失败,并且您知道它,如果幸运的话,在45分钟到1小时后。

另一方面,MySQL只是要将SQL转储到文件中,然后还原该SQL。 它的工作原理非常简单,您可以轻松地训练任何媒介来帮助高级用户使用备份,并且可以轻松地进行操作。 但是您还需要自己维护和确保安全性,这有时可能会很麻烦,具体取决于您的环境。

磁盘使用情况

我在Quora的某处读到某人说磁盘使用率并不重要,因为存储很便宜。 嗯,也许是这样,但是仅仅因为浪费它仍然有些愚蠢。

好吧,MySQL非常紧凑,我可以从2003年开始在小型公司中安装一些软件,数据从未达到10 GB,并且它们的表具有数百万行的数据,但数据的增长并未超出比例。

在SQL Server中,我进行了另一次安装,仅两个月后就占用了2 GB! 必须维护SQL Server,需要清除日志,需要频繁备份二进制文件,才能使SQL Server允许您对数据库进行维护,并拥有一个知道如何处理数据的人员在这种情况下,取决于用户数量,安装的复杂性,正在处理的数据类型,这就是为什么在某些地方必须使用DBA的原因。 MySQL可以由受过中等训练的高级用户维护,并且会很好。

另外,如果没有SQL事件探查器和SQL代理,SQL Server中也无法完成某些工作。 MySQL可以自己完成所有事情,而无需提供一项以上的服务。

再一次,取决于您的企业规模和复杂性,SQL Server可能是您要走的路。 但是,如果您不需要这些复杂性,MySQL是一个很好的竞争者。

存储的程序,功能和UDFS

这是RDBMS中大胆的领域,我什至在制作有关MySQL SP的Udemy课程。 但是,尽管我热爱SP,触发器,函数以及MySQL的所有内容,但您必须将其提供给SQL SERVER,他们才能做到最好。

现在,在您对我说这句话之前,让我补充一下,SQL Server上的SP速度很快,可能很复杂,拥有许多使您的生活更轻松的实用程序,它们可以使用其他语言(例如C#和Visual Basic)进行编译,您甚至可以创建TABLE变量,该变量可以比MySQL上的临时表更快,更轻松地工作。 他们有很多事情要做。

MySQL也可以具有用户定义的函数,但是您需要精通C。如果您精通C,则无需担心。 我们很多人都不是。

当然还有更多,但我希望您能明白。

祝你好运!


回答 2:

SQL Server Express扩展了大型企业的选择范围,如果您在工作中使用SQL,则可以使用几种替代方法。 检查SQL查询只是您可以使用前缀筛选的众多功能之一。

SQL Server Express提供了各种兴趣点。 首先,看似最重要的是与SQL Server的全面通用性和协调性。

了解更多:SQL Server Express | SQL Server Express版本