SQL Server与MySQL:谁优谁劣

日期: 2019-05-13 作者:Brien Posey翻译:邹铮 来源:TechTarget中国 英文

SQL Server和MySQL是最流行的两种关系数据库管理系统(RDBMS),而且,它们都基于结构化查询语言。尽管它们没有明显优劣之分,但在某些用途中,与甲骨文的MySQL相比,微软的SQL Server 2019可能是更好的选择,反之亦然。这完全取决于你的业务需求。

下面让我们深入了解一下SQL Server与MySQL,包括重要功能、定价、合规性和其他关系数据库管理系统注意事项,以帮助你做出最佳选择。

Microsoft SQL Server功能和定价

微软最新版本的关系数据库管理系统是SQL Server 2019,目前正处于预览阶段。SQL Server 2019承诺允许用户选择语言和平台,它现在可以用于Window、Linux和容器。此外,SQL Server 2019还提供Power BI Report Server,允许用户访问Power BI报告和SQL Server Reporting Services。

截至2019年4月,SQL Server 2019预览版即社区技术预览版 (CTP)2.5。此前的CTP版本(例如CTP 2.0)为用户提供了从索引失败中恢复的功能。而在CTP 2.0之前,索引失败意味着索引过程必须完全重新启动,这既耗时又困难。通过SQL Server 2019,用户将能够恢复索引过程,而无需重新开始,从而创建更平顺更高效的过程。

CTP 2.0还包括Always On Availability Groups,它可增加同步副本的数量。用户可以配置最多五个副本的组,并对其进行编程以在组内进行自动故障转移。

除索引功能和Always On Availability Groups外,CTP 2.5还包含自CTP 2.0以来引入的所有功能,例如在IntelliJ的大数据集群中提交Spark作业和使用Sparklyr,对Windows上Java和Python的外部库支持、表格模型中的计算组以及加速数据库恢复–这是重新设计SQL Server数据库引擎恢复过程的直接结果。这种新的加速数据库恢复可确保在故障转移或非正常中断后快速有效地完成恢复。

通过CTP 2.5,用户可为大数据集群部署创建和自定义他们自己的部署配置JSON文件,而不必使用环境变量。对于默认部署,CTP 2.5还会提示用户为新设置创建的mssqlctl群集。

截至撰写本文时,SQL Server 2019仍处于预览模式,可供免费下载

另一个SQL Server版本是SQL Server 2017。SQL Server 2017提供了一整套功能,包括高性能数据仓库、Always Encrypted技术和数据库内分析。

对于标准版,微软按每CPU核心提供许可,许可证以双核包销售;如果SQL Server在服务器的物理操作系统环境中运行,则你必须为所有处理器核心购买许可证。SQL Server 2017标准版许可证售价为3189美元。与所有其他技术一样,实际许可成本通常还要考虑很多因素,例如批量折扣。

Oracle MySQL功能和定价

MySQL属于甲骨文公司,该公司在2010年收购Sun Microsystems公司时获得该技术;而Sun公司是在2008年收购原始开发商MySQL AB公司。甲骨文MySQL Cloud Service、MySQL Enterprise Edition和MySQL Cluster CGE都是基于Oracle云平台和MySQL数据库服务构建的商业应用程序。甲骨文提供两种不同版本的MySQL:开源MySQL Community Server和专有的MySQL Enterprise Server。MySQL的最新版本–MySQL 5.6,现可从Oracle的网站下载

MySQL 5.6让用户可加密存储的身份验证凭据和检查密码安全性。这些新的安全更新使黑客更难以访问敏感信息。而MySQL 5.6企业版提供了一组基于OpenSSL库的加密功能,这套新功能允许用户使用公钥非对称加密来加强数据保护;创建公钥和私钥以及数字签名;执行非对称加密和解密;并使用加密哈希进行数字签名、数据检验和验证。

MySQL 5.6中还添加了表分区增强功能。现在分区最大数量已增加到8192,包括表中的所有分区和子分区。MySQL 5.6的性能模式现在包括对表输入和输出的检测,以及基于模式、表名或线程按表进行事件筛选。

其他版本的MySQL包括MySQL Classic,这是一个嵌入式数据库,仅供独立软件供应商或OEM使用。另外,MySQL Community Edition是通过GNU通用公共许可证提供的开源数据库。不过,三个主要版本(包含管理工具)都需要通过甲骨文获取商业许可。

商业MySQL许可证可采用订阅形式,根据MySQL版本、通信套接字数量和订阅时间长短,价格有所不同。MySQL标准版售价2000美元,而MySQL企业版售价5000美元。

SQL ServerMySQL的性能和可扩展性

曾经MySQL被认为不如竞争数据库。而如今,MySQL已经是成熟且功能齐全的数据库,很多知名企业都在使用它。

MySQL强调数据库的可扩展性和性能。MySQL数据库可以轻松扩展到大部分TB级数据库,并可进行优化,以处理高速事务工作负载或极高容量工作负载–每天高达10亿次查询。通过内存表、b树索引和哈希索引等功能,MySQL可实现非常高的性能和可扩展性。

MySQL能够跨多个服务器传递数据库和应用程序查询。MySQL还提供经过认证和受支持的解决方案,可提供适当级别的高可用性和可扩展性,以满足服务级别的要求。这个关系数据库管理系统可以配置作为故障转移集群,它也支持高速复制。还有很多第三方供应商为MySQL提供高可用性选项。另外,MySQL企业版提供了MySQL Thread Pool,可满足用户、查询和数据加载的高性能和可扩展性需求。MySQL旨在应对故障以及从故障中恢复;这包括MySQL、操作系统或硬件故障以及可能导致停机的维护活动。

与此同时,随着时间的推移,微软的SQL Server也发展迅速,与20世纪90年代早期的SQL Server版本相比, SQL Server 2019已经完全不同。

与MySQL一样,SQL Server可提供高可用性,并且可处理最大最苛刻的工作负载。当使用Kubernetes部署SQL Server 2019大数据集群时,无论部署发生在何处,这种部署是可预测的、快速且可灵活扩展。该大数据集群利用可扩展存储层,整合SQL Server以缩减到PB级数据存储。由于Spark引擎现在是SQL Server 2019的一部分,因此用户可以充分利用开源数据准备和查询编程库;可用于处理和分析可扩展层中的高容量数据。

SQL ServerMySQL部署

SQL Server和MySQL都支持SQL,这是关系数据库的标准编程语言,但它们都有很多专有扩展。

在选择关系数据库管理系统时,另一个重要考虑因素是标准合规性。SQL标准自1986年就已经存在,当时发布的是SQL-86标准。SQL标准在不断发展,特别是现在它可兼容Windows、Mac、Linux和容器。

MySQL支持当前的SQL标准,并支持开放式数据库连接级别0到3.51。此外,MySQL可以在各种SQL模式下运行,包括ANSI、STRICT TRANS TABLES和TRADITIONAL。值得注意的是,MySQL通过很多扩展来增强SQL Server标准。因此,转移MySQL应用程序到Microsoft SQL Server或竞争的SQL数据库引擎会需要做大量工作。

作为MySQL Workbench的一部分,甲骨文的迁移向导提供了有关数据库迁移的全面指南。无论需要移动哪种类型的数据库,迁移向导都能够处理它,因为它可兼容Microsoft SQL Server、Microsoft Access、PostgreSQL、Sybase ASE、Sybase SQL Anywhere、SQLite和很多其他数据库。迁移向导允许数据库管理员(DBA)和开发人员管理他们的迁移项目,并允许用户选择他们想要移动的数据。

截至2017年,微软已添加支持以在Linux系统上运行SQL Server。在SQL Server 2017的基础上,SQL Server 2019计划整合更多平台,Apache Spark和Hadoop分布式文件系统也已加入该程序。

SQL ServerMySQL:主要区别

尽管SQL Server 2019可在Windows、Linux和容器中运行,但它最初设计为仅可用于Windows。同时,现在MySQL也可在多个平台运行。由于MySQL的设计充分考虑了现代Web应用程序的需求,因此开发人员更喜欢将其用作LAMP Stack with Linux、Apache Web Server或PHP编程语言的组件。LAMP Stack的组件是可互换的,这意味着用户需要使用不同的编程语言。MySQL和SQL Server 2019都支持Java、PHP、C ++、Python、Ruby、Visual Basic、Delphi、Go和R;另外,MySQL还支持Perl、Scheme、Tcl、Haskel和Eiffel。 MySQL仅提供英语版本,而SQL Server 2019提供多种语言版本。

MySQL允许数据库管理员以多种方式筛选表、行和用户,但用户需要逐个数据库筛选表、行或用户。而SQL Server 2019允许数据库管理员基于行进行筛选,这可通过逐个数据库的方法筛选数据,并允许筛选的数据存储在单独的分发数据库中。

当数据库管理员使用MySQL时,可将所有数据提取为SQL语句来备份数据。这是通过该关系数据库管理系统提供的工具来实现,该工具在备份数据时会阻止数据库。而SQL Server 2019在备份数据时不会阻止数据库,这允许用户备份和恢复数据,而不会浪费时间和精力。

MySQL和SQL Server 2019都有考虑安全性。MySQL允许数据库管理员在运行时通过二进制文件管理数据库文件,并允许其他进程在运行时访问文件。而SQL Server 2019不允许任何进程访问其数据库文件或二进制文件,并要求数据库管理员通过运行实例来执行特定功能,使黑客无法直接操作这些数据。

但是,MySQL并非没有限制。在MySQL中,触发器在同一时间仅限于一个操作,这意味着只能在表上执行一个触发器,并且,触发器无法在视图上定义。对于触发器,MySQL没有遵循完整的SQL标准。

现在有两种不同版本的MySQL:免费的MySQL Community Server,以及MySQL Enterprise Server,它有多个专有扩展。SQL Server 2019仍处于测试模式,用户可以免费下载。

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

1个评论

  1. 蚂蚁乐居说道:

    真心不错,不得不支持一下先!

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

翻译

邹铮
邹铮

相关推荐

  • Java、JDBC和Postgres

    现在越来越多的企业开始部署PostgreSQL,为什么呢?当你看到这个许可开源数据库所提供的功能,你就不会对此 […]

  • 5个元数据管理最佳实践

    在数据驱动的环境中,元数据不仅仅是数据的副产品;还是综合数据治理战略的关键组成部分。企业需要适当的元数据管理, […]

  • Cockroach Labs增加矢量搜索,更新定价选项

    Cockroach Labs 近日推出矢量搜索功能,旨在使客户能够访问和操作非结构化数据,以训练生成式人工智能 […]

  • 如何使用数据治理成熟度模型

    如果没有强大的数据治理,数据就无法产生有价值的见解以及改善决策。数据治理成熟度模型可帮助企业评估当前的成就水平 […]