MySQL和Microsoft SQL Server关系型数据库各有利弊,我们在选择时需要考虑SQL服务器和MySQL在特性,成本,功能以及其他方面的差异。
SQL服务器和MySQL是当下市场上两个最流行的关系数据库管理系统。虽然它们并没有明显的差距,但在某些情况下,使用微软的RDBMS可能是比使用甲骨文的MySQL更好的选择,而相反的情况也一样存在。
例如,MySQL在多平台环境中是一个很好的选择,因为它同时适用于Microsoft Windows、UNIX和Linux等操作系统。另一方面对于Windows用户,当他们需要执行深度分析,或将工作负载迁移到Azure云时,SQL Server将会是是更好的选择。
让我们来横向对比一下SQL服务器和MySQL,主要考量的方面包括功能、定价、合规和其他关系数据库管理系统(RDBMS)需要考虑的问题,以帮助你根据工作负载做出最佳的选择。
Microsoft SQL Server功能和定价
最新的版本的微软RDBMS是SQL Server 2016,于今年6月份发布。微软提供了四种不同版本的SQL Server 2016,外加上一个供虚拟主机应商使用的web版本。Express 和Developer这两个版本是免费的。SQL Server Express Edition是一个轻量级的数据库,可以存储大约10 GB的数据,而Developer Edition只授权作为开发和测试环境使用。
其他SQL Server版本包括Enterprise,Standard和Web版。Enterprise Edition配备了全套的特性,适合于充当任务关键型数据库的角色,它能够高效地处理高级分析工作负载,而Standard Edition相对于Enterprise Edition,功能有所削减,适用于相对较小规模的生产环境。Web Edition则可以通过公共网站访问,第三方托管服务提供商使用该版本向购买者提供服务,根据服务具体情况设置相应的价格。
微软根据用户使用的核心数量为Standard和Enterprise版授权许可。和其他技术一样,许可成本包括许多因素,比如数量折扣。根据规定,双核芯的SQL Server 2016 Enterprise Edition许可需要14256美元,而双核芯的Standard Edition 版许可证为3717美元。此外,你还需要为每个连接到SQL Server的用户或设备购买客户端访问许可证(CAL)。其标价是每个用户或设备209美元。
Oracle MySQL 功能与定价
Sun Microsystems公司于2008年从原开发者MySQL AB那里收购了MySQL,甲骨文在2010年收购Sun Microsystems公司,成为MySQL技术如今的持有者。MySQL数据库现在的版本是5.7,既可以作为商用RDBMS也可以作为一个开源的数据库。MySQL有三个主要的版本: MySQL Standard Edition,MySQL Enterprise Edition 和MySQL Cluster Carrier Grade Edition (CGE).。
其他版本还包括MySQL Classic,一个嵌入式数据库,适用于只有独立软件供应商或OEM。MySQL Community Edition,是MySQL数据库的开源版本,可以通过GNU获得公共许可。不过,MySQL三个主要的版本,包括管理工具,都需要获得甲骨文的商业许可才可以使用。
商业MySQL许可可以按需订阅,根据MySQL版本,通信套接字数目以及订阅长度的不同,其价格浮动会很大。例如,MySQL Standard Edition(1到4个套接字)许可价格为2000美元一年,而MySQL Enterprise Edition(1到4套接字)的许可为5000美元一年。MySQL Cluster CGE(5个或更多套接字服务器),订阅一年的价格为20000美元。
SQL Server与MySQL的对比:性能和可伸缩性
MySQL数据库一度被低估,人们认为它对其他数据库竞争起来没有优势。然而如今,MySQL已经成为一个成熟且功能齐全的数据库,很多知名企业都在使用MySQL数据库。
MySQL十分重视数据库的可伸缩性和性能。MySQL数据库可以很容易地扩展到TB级别的数据库,并且可以被持续优化,以处理高速事务性工作负载甚至每天十亿查询规模的工作负载。MySQL内置了一些功能,比如内存表,b -树索引和散列索引,这些功能保证了其具有很好的性能和灵活的可伸缩性。
与其他企业级数据库一样,MySQL也具备高可用性的设计。MySQL RDBMS可以配置故障转移集群,同时还支持高速复制。第三方供应商会向用户提供一些MySQL的高可用性选项。
随着时间的推移,微软的SQL Server取得了很大的发展,SQL Server 2016与SQL Server 90年代初的版本有着巨大的差别。 和MySQL一样,SQL Server也具备高可用性,可以处理巨大的,要求非常严格的工作负载。
SQL Server 2016包括扩展高可用性,并对memory-optimized表设计进行了改进,以获得更快的性能和更高的可伸缩性。这对那些使用数据库内存OLTP功能的应用来说是非常有用的。不过,SQL Server的可伸缩性、性能和可用性特性早在SQL Server 2016以前的版本就已存在。因此,SQL Server 2016上的大多数新功能重点是商业智能、安全、云可移植性等方面。
例如, Stretch Database的功能允许用户将不经常访问的数据存储在微软Azure云上,进而降低成本,同时仍然保持数据可被查询。分析功能方面的改进包括支持R语言编程和对PolyBase的全面整合,PolyBase允许用户查询存储在Hadoop集群和Azure BLOB存储中的数据。
SQL Server 2016引入的两个更加引人注目的安全特性是列层级安全性
和Always Encrypted,它们会在数据闲置或运输过程中对数据进行加密,防止未经授权的用户访问敏感数据。
SQL Server与MySQL 在实现方面的对比
SQL Server 和MySQL都支持SQL,关系数据库的标准语言,但其都对SQL都有各自的扩展。另一个在选择时需要着重考虑的因素是对关系数据库管理系统标准的兼容性。SQL标准自1986年制定以来,一直在处于持续发展中。
MySQL支持当前的SQL标准,其Open Database Connectivity级别为 0到3.51。此外,MySQL可以实现不同SQL模式下的操作,包括ANSI、STRICT TRANS TABLES和TRADITIONAL。值得注意的是,MySQL通过使用一系列的扩展来增强SQL Server标准。因此,要将一个MySQL的应用程序移植到Microsoft SQL Server,或者其他SQL数据库引擎,需要完成大量工作。
相比之下,微软并没有公开表明SQL Server支持行业标准的程度。SQL Server包含了兼容性设置,它允许一个数据库实例向后兼容以前版本的SQL Server。微软还在SQL Server 2016上支持了云可移植性,为用户提供一个一致性的体验,无论SQL服务器安置在数据中心或云端,或者在两个上面都有。
此外,微软计划在2017年支持Linux系统上运行SQL Server,这是微软首次在Windows系统外支持SQL Server—至少在某种程度上,这可能会削弱MySQL在多平台上的优势。