首先你要知道:MySQL和MS SQL Server的主要区别。
- 两者都能很好地与大多数流行的操作系统集成,并且它将取决于现有的基础架构或希望的基础架构,以确定哪一个最适合(MySQL适用于Linux- MS SQL适用于Windows)
- MySQL有一个免费的开源版本,生产负载能力强,但是需要更多的额外支持。类似地,MS SQL为开发人员提供了一种基本的产品,但这种产品的生产负载可能有限,所以必须以更高的成本进行升级。SQLServer属于商用数据库软件,很多方面都有保障。
- 从新手的角度来看,MS SQL和Microsoft Azure提供了一个全面的云解决方案。MySQL仍然保持着自己的地位,但是微软的组合是很难被击败的。
- MS SQL Server通过它的SQL Server Management Studio (SSMS)提供了一个更强大的工具集合,特别是在安全性方面,通过一个简单的GUI报告和分析。
- 为这两个数据库系统手工编写api可能是一项特别无聊的任务。如果是需要一个快速的开发周期,并希望减少定制API,都可以在几分钟内创建一个MySQL或MS SQL API。
那么,哪个数据库比较适合?
显然,这里有大量的信息需要整理。“视情况而定”肯定是这个回答的万年答案了。而作出这一决定的一般经验是:
- 如果是一个Linux商店,已经在使用LAMP堆栈的各个部分,那么MySQL更好。
- 如果您是一个Microsoft商店,已经投资于. net和Windows生态系统,那么SQLServer肯定更好。
- 如果你完全是新手,或者想要一个干净的开始,上面的证据倾向于SQL Server。微软正在借助Azure的SQL数据库在云领域建立势头。他们继续给其他生态系统(如Linux)和开源。而且SQL Server具有更好的工具集、更多的TSQL和更好的性能。
接下来深入了解MySQL与MS SQL Server
操作系统方面:
MySQL
MySQL几乎运行在所有主要的操作系统上,包括Linux、MacOS和Windows。虽然传统上与Linux相关(作为著名的LAMP堆栈的一部分),但它也可以在Windows上运行。
SQL Server
SQL Server最初是为Microsoft Windows操作系统编写的。近年来,微软和开源社区走的密切、支持Linux和Mac OS方面还是取得了很多进步的。最新版本的SQL Server运行在Linux上,并将运行在Docker容器中的Mac OS上。
优势-视乎情况而定
老实说,这取决于你的公司已经在使用什么操作系统。虽然这两个平台都支持两大操作系统,但各自都有“主场优势”。如果已经使用了Windows和. net,那么使用SQL Server可能是有意义的。如果你是一个Linux和Python/Java/PHP,MySQL可能是更好的选择。
成本
在做软件决策时,成本肯定是很重要的一个因素,而企业级数据库可能是最大的开销之一。这两种解决方案都提供了一个“免费”层。从这里开始,价格取决于日常需要的数据库的功能有多强大,以及需要什么样的支持。就跟百度云一样,不过百度云用的更难受。如果数据库是任务关键型的,那么为高级监视、备份和支持花钱,都是值得的。
MySQL
MySQL的免费产品是MySQL社区版。它拥有相当数量的标准功能。这对于学习平台的开发人员来说是很好的。它还应该满足较小系统的需求。
为了获得更完整的特性集(以及Oracle支持),需要支付一些费用。根据最近的价格,这可以运行你在任何地方,每台服务器2000美元- 1万美元,每年。有3个不同的层(标准版、企业版和集群CGE)。在它们之间进行选择主要取决于数据需求的复杂性和规模。
SQL Server
SQL Server的免费服务有两种:
- 开发人员-“全功能版本的SQL Server软件,允许开发人员成本效益建立,测试和演示基于SQL Server软件的应用程序。”
- 免费的入门级数据库,是理想的学习,以及建立桌面和小型服务器数据驱动应用程序高达10gb。
简而言之,只要您不在生产环境中使用,Developer edition就可以提供您所需的一切。Express有一个更小的特性集,但它的许可证允许生产使用。与MySQL一样,如果您的业务需求和规模较小,那么Express可能会满足您的需要。
如果你需要一个更健壮的特性集,你将不得不为此付费。根据微软的定价页面,你可以在任何地方支付931美元到14256美元每核心。这里的定价有很大的差异,您的业务需求将决定您需要多少电力。
优势-视乎情况而定
同样,这里的最佳选择取决于您的业务需求。这两种解决方案都提供了一个自由层。除此之外,两家公司的定价方案都很复杂。咨询每个公司的销售部门,最终确定你需要什么,以及你最终会支付多少。
云计算支持
近年来,计算机领域发生了巨大的变化。云计算风靡一时。“三巨头”目前分别是亚马逊网络服务(AWS)、微软Azure和谷歌云。它们都提供健壮的服务,比如存储、计算,当然还有SQL数据库。
这场革命影响了本文的前两个要点(操作系统和成本)。云提供商管理操作系统和服务器的复杂性,并提供“随用随付”的计划,以避免主要的前期成本。在某种程度上,这种转变降低了操作系统/成本的重要性。相反,性能、工具支持、特性集等其他考虑因素是更重要的因素。以下是这些产品的销售情况:
MySQL
三大云计算供应商均支持MySQL,并提供以下功能:
- AWS在其关系数据库服务上提供MySQL。
- Azure在他们的Azure数据库上提供MySQL服务。
- 谷歌在云SQL上提供MySQL。
每个服务都声称易于管理、高可伸缩性、健壮的安全性和随用随付的定价。本文对云提供商的MySQL产品进行了深入的比较。由于供应商之间的差异,它不会尝试比较定价。
云定价似乎也属于“视情况而定”的范畴——没有“一刀切”的答案。最好的方法可能是首先在几个云中创建MySQL环境。然后,负载测试您的业务操作的典型用法。并确定不同的成本是如何产生的。
值得注意的是,Oracle (MySQL的所有者)也为MySQL提供云服务。由于Oracle对MySQL的“本机”支持,这可能值得探讨。然而,SQL数据库只是软件架构的一部分。系统仍然需要存储、计算和安全服务。甲骨文目前还不是提供这些服务的市场领导者。出于这个原因,Oracle的云托管MySQL可能是一个有风险的选择。
值得注意的是,所有云提供商也提供虚拟机服务,您可以在这些虚拟机服务上运行自己的MySQL实例。对于希望对数据库有更多控制权的客户来说,这是一种选择。这种方法需要更多的专业知识(而且更昂贵)。
SQL Server
与MySQL类似,每个主要的云提供商都有一个SQL Server产品:
- AWS在其关系数据库服务上提供Sql Server。
- Azure在其SQL数据库服务上提供SQL Server。虽然SQL Server是在后台运行的,但是提供的SQL数据库将服务器管理从最终用户抽象出来。
- 谷歌在其谷歌云平台上提供SQL Server。
这里一个有趣的转折是,主要的云提供商之一(Microsoft)也是SQL Server的创建者。虽然这三家供应商都提供了强大的选择,但微软有一种“主场优势”的感觉。
与MySQL一样,您也可以付费在云中托管Windows vm,并自托管SQL Server。这还伴随着相同的专业要求和额外的成本问题。
优点- SQL Server (SQL数据库)
虽然这两种解决方案都可以作为云产品使用,但Microsoft Azure和SQL数据库的结合是无可匹敌的。如果你已经在使用其他的提供商,或者已经投资了MySQL,那么这仍然是你的选择。然而,选择Azure/SQL数据库还是很有吸引力的。
性能
数据库性能对于任何软件应用程序都是至关重要的。如果数据库不以一种方便的方式响应,整个系统就会陷入困境。这将导致诸如糟糕的用户体验、操作延迟和金钱损失等问题。
数据库性能取决于大量的变量。工作负载上的细微差异会以这样或那样的方式影响优势。小的调整可以改善结果。一个设计良好的数据库是物有所值的。
MySQL和SQL Server都吹捧广泛的性能和扩展能力。通过在web上搜索两者之间的比较,SQL Server似乎具有优势。
另外,MySQL是Oracle的“入门级”数据库。对于高性能的需求,Oracle会引导您使用他们的旗舰数据库产品。另一方面,SQL Server是微软的旗舰产品。
优点- SQL Server
虽然这不是十拿九稳的,但SQL Server稍好一些的数字和“旗舰”的地位使它在这方面略胜一筹。
工具支持
为了使用数据库,需要一个好的工具集。数据库本身是一个没有GUI的后台进程。但是,为了开发和支持数据库,您需要与它进行交互。MySQL和SQL Server都为此目的提供了前端客户端。
MySQL
MySQL的客户端应用是MySQL工作台。Workbench提供了运行在Windows、Linux和MacOS上的产品。它提供了几个重要的数据库管理工具,包括:
- 数据库连接和管理
- SQL编辑器和执行
- 数据库和模式建模GUI
- 性能监视和查询统计
SQL Server
SQL Server的客户端应用程序是SQL Server Management Studio (SSMS)。虽然SQL Server可以在Windows、Linux和MacOS上运行(通过Docker),但是SSMS只能在Windows机器上使用。注意,Microsoft提供了一个Visual Studio代码扩展来在基于linux的机器上执行SQL。
SSMS具有比MySQL工作台更健壮的特性集。这包括:
- 更广泛的数据库管理工具。包括一组健壮的安全性、报告、分析和邮件服务。
- 一个强大的执行计划可视化工具。这样可以方便、快速地识别性能瓶颈。
- 源代码控制集成。
- 实时活动监测与过滤和自动刷新。
优点- SQL Server
这两个产品都提供了“基础”(执行SQL和查看/管理数据库的能力),但是SSMS体验要优越得多。经验丰富的数据库管理员(dba)可能希望使用脚本和SQL来管理他们的数据库。但是许多用户需要一个简单的GUI来执行这些任务。这是SSMS的一个亮点。此外,执行计划可视化工具使性能瓶颈很容易修复。它可以一次又一次地为自己买单。
语言支持
这两个平台都利用SQL与它们的模式和数据进行交互(有一些细微的区别)。但是,当涉及到运行时语言与数据库的接口时,它们就不同了。
例如,在一个典型的服务器架构中,您可能有:
- 数据库- SQL读取/写入数据
- 应用服务器- c++ /PHP/Perl/Python/。Net/Java提供业务逻辑和与数据库的接口
下面是两个系统之间需要考虑的一些差异:
- SQL Server支持T-SQL,这是SQL的一个专有扩展。这支持过程式编程、局部变量、字符串/数据处理函数和UPDATE/DELETE语句中的FROM子句等概念。基本上,您可以使用SQL做更多的事情。
- 运行时语言——两个系统支持连接使用的主要编程语言(c++ c#、Java、PHP、Python、Ruby、Visual Basic, Delphi,, R)。有一些文章在网上声称另一些语言如艾菲尔铁塔只支持MySQL,但只要你可以使用ODBC连接,两个数据库是可用的。
- 如果使用。net语言(c#、f#、Visual Basic等),微软再一次提供了“主场优势”。微软写了ADO。Net库中的SQL Server优先。ADO。Net与MySQL兼容,但它与SQL Server兼容。
- SQL Server还提供了从存储过程调用. net代码的附加(可能存在争议)机制。这可能是在数据库中注入各种功能的强大机制。它还允许你搬起石头砸自己的脚。这里要小心。
最后,值得一提的是,有一款非常不错的sql工具,可以对这两个优秀的数据源同时做到支持,那就是SQLynx,不止mysql和sql Server,还支持PostgreSQL、Oracle以及持达梦、人大金仓、Oceanbase、openGauss等
感兴趣的话可以去官网下载下载 - SQLynx SQL 工具