实际上,每个现代Web应用程序和数据库都起着至关重要的作用。由于当前Web开发的动态特性,即使是基本的应用程序也需要一些存储,检索和修改数据的机制。当然,随着数据库的重要性飙升,某些关系数据库管理系统(RDBMS)也越来越受欢迎。
其中两个系统是MySQL和SQL Server。虽然它们具有独特的用例,但它们都执行相同的功能。它们运行不同的风格,但是共同基于SQL或结构化查询语言。因此,开发人员可以期待MySQL和SQL Server之间的一些相似之处,例如使用表来存储数据,引用主键和外键,以及单个环境或服务器中的多个数据库。
将MySQL和SQL Server称为现有的两种最流行的RDBMS解决方案并不是不准确的,尽管Oracle和Postgres可能会对此有所说明。即使我们逐渐见证了从SQL向NoSQL的转变,前者仍然是更具主导地位的存在。这意味着现在是学习MySQL或SQL Server的好时机。
在本指南中,我们将简要介绍MySQL和SQL Server的内容。我们将找出MySQL和SQL Server之间的区别,并帮助您选择最适合您需求的产品。
MySQL vs SQL Server
什么是MySQL?
MySQL是在90年代中期(后来被Oracle收购)开发的,它是最早的开源数据库之一,直到今天仍然如此。这意味着MySQL有几种选择。但这些变体之间的差异并不太明显; 语法和基本功能保持一致。
已经成为MySQL特征的东西是它在创业社区中的受欢迎程度。因为它是开源的和免费的,所以开发人员可以轻松地开始使用MySQL,并在他们可能需要的极少数情况下修改其代码。MySQL通常与PHP和Apache Web Server 结合使用,在Linux发行版之上,这导致了著名的首字母缩略词LAMP(L inux,Apache,MySQL,PHP)。
什么是SQL Server?
SQL Server,也称为Microsoft SQL Server,比MySQL长得多。Microsoft在80年代开发了SQL Server,并承诺提供可靠且可扩展的RDBMS。这些年来,这些仍然是SQL Server的核心品质,因为它是大型企业软件的首选平台。
SQL Server主要面向使用.NET作为开发语言的开发人员,而不是PHP for MySQL。这是有道理的,因为两者都属于微软的保护伞。
MySQL和SQL Server之间的主要区别
现在我们已经概述了这些系统是什么,让我们看看MySQL和SQL Server之间的几个关键偏差:
环境
如前所述,SQL Server最适合使用.NET,而MySQL可以与几乎所有其他语言配对,最常用的是PHP。还应该提到的是,SQL Server过去只能在Windows上运行,但自去年微软宣布Linux支持SQL Server以来,情况发生了变化。尽管如此,Linux版本还不够成熟,这意味着如果使用SQL Server,我们仍然建议您继续使用Windows,如果使用MySQL,请切换到Linux。
语法
对于大多数人来说,这是两个系统之间最重要的区别。熟悉一套语法规则可以极大地影响您决定哪个系统最适合您。虽然MySQL和SQL Server都基于SQL,但语法上的差异仍然很突出,值得牢记。例如,请看以下示例:
MySQLSELECT age
FROM person
ORDER BY age ASC
LIMIT 1 OFFSET 2
Microsoft SQL ServerSELECT TOP 3 WITH TIES *
FROM person
ORDER BY age ASC
两个代码块都实现了相同的结果 - 从名为person的表中返回3个年龄最小的条目。但语法有了巨大的变化。当然,语法是主观的,所以我们不能给出任何建议; 选择对你来说更直观的东西。可以在此处找到MySQL和SQL Server之间的实现更改的完整列表。
SQL Server不仅仅是一个RDBMS
专有软件与开源软件的主要优势在于它所获得的独家支持。在这种特殊情况下,优势变得更加深远,因为SQL Server得到了全球最大的科技公司之一的支持。Microsoft已经为SQL Server构建了其他工具,这些工具与RDBMS捆绑在一起,包括数据分析工具。它还具有报表服务器 - SQL Server Reporting Services以及ETL工具。这使得SQL Server成为RDBMS的瑞士军刀。您也可以在MySQL上获得类似的功能,但是您必须为第三方解决方案肆虐网络 - 对大多数人来说并不理想。
存储引擎
MySQL和SQL Server之间有时会忽略的另一个重大差异是它们存储数据的方式。SQL Server使用由Microsoft开发的单个存储引擎,而不是为MySQL提供的多个引擎。这为MySQL开发人员提供了更大的灵活性,因为他们可以根据速度,可靠性或其他方面为不同的表使用不同的引擎。一个流行的MySQL存储引擎是InnoDB,它落在频谱的较慢端,但保持可靠性。另一个是MyISAM。
查询取消
没有多少人知道这一点,但MySQL和SQL Server之间潜在的突破性差异是MySQL不允许您在执行中取消查询。这意味着一旦命令开始执行,你最好希望它可能造成的任何损害都是可逆的。另一方面,SQL Server允许您在过程中途取消查询执行。对于数据库管理员而言,这种差异尤其严重,而Web开发人员则执行脚本命令,这些命令在执行期间很少需要取消查询。
安全性
从表面上看,在比较MySQL和SQL Server之间的安全性差异时,没有什么可看的。两者都符合EC2标准,这意味着您大多安全地选择两者中的任何一个。话虽如此,微软的影子在这里也很突出,因为它为SQL Server配备了专有的,最先进的安全功能。专用安全工具 - Microsoft Baseline Security Analyzer - 确保SQL Server的强大安全性。因此,如果安全是您的首要任务,那么您的选择就是为您做出的。
成本
这是SQL Server变得不那么有吸引力的地方,MySQL获得了重点。Microsoft要求您购买在SQL Server上运行多个数据库的许可证 - 有一个免费版本,但它只是为了让您熟悉RDBMS。相比之下,MySQL使用GNU通用公共许可证,这使得它完全免费使用。但请注意,如果您需要MySQL的支持或帮助,您需要付费。
社区支持
将我们带到下一点。虽然您可以支付MySQL支持,但由于出色的社区贡献和对它的支持,这种情况很少出现。拥有更广泛社区的好处是,大多数人不必寻求官方援助 - 他们可以搜索网络并找到大量解决方案。
IDE
重要的是要注意两个RDMBS都支持不同的集成开发环境(IDE)工具。这些工具为开发提供了一个有凝聚力的环境,您应该密切关注哪一个最适合您的需求。MySQL拥有Oracle的企业管理器,而SQL Server使用Management Studio(SSMS)。两者都有其优点和缺点,如果您没有其他任何依据可以作出决定,可能会给您带来平衡。
结论
对于那些刚开始进行现代应用程序开发的人来说,RDMBS的选择非常重要。选择一个系统的人很少会稍后切换,这意味着权衡不同的产品并为您提供最佳服务至关重要。
在本篇文章中,我们讨论了两种最广泛使用的RDMBS - MySQL和Microsoft SQL Server。我们研究了MySQL和SQL Server之间的几个关键差异,甚至其中一个可能足以使您的决策转向另一个。
最终,选择权归你所有。根据经验,如果您正在开发中/小型应用程序并主要使用PHP,请使用MySQL。然而,如果您对构建大规模,安全,有弹性的企业应用程序感兴趣,那么SQL Server应该就在您的“小巷”中。