知乎:SQL Server 真的比不上MySQL 吗?

2024-04-25 10:56:44 浏览数 (3)

最近在网上看到一个帖子,大概意思是自己之前学过SQL Server,现在想重新学SQL,发现网上都是MySQL的教程,于是有了SQL Sever比不上MySQL的疑问。

这个问题引来不少大佬的回答

答主:晴天好心情的回答 https://www.zhihu.com/question/369022336/answer/1131076921

作为一个从业者。

我可以肯定并且明确的跟你说,mssql甩mysql八条街。各种方面来说。

之所以让人感觉到你问的这个原因,那是因为mysql免费,市场占有率高,用的都是互联网公司,活跃的群体也是互联网公司的这些人。

mssql在版本7的时候就支持完整的行锁,而mysql是在innodb出来以后才支持。

mysql到8.0才支持瞬间加字段,还有限制。

现在开源里看好pg。

Oracle地表最强,这个没有争议。mssql2019支持linux,这是一个里程碑

答主:刘鑫 https://www.zhihu.com/question/369022336/answer/3130598479

好嘛,二十多年前就有人吹mysql比mssql好,“特别安全”(原话用了特别低俗的比喻,我不想复述。我问了他一句“你知道windows里所有的mysql链接都是root吗?那时候人都单纯,他回了我一句“啊?”

还有,那时候mysql不支持外键,不支持存储过程和视图,互联网上到处都是mysql的拥护者在宣传“这些都是过时、无用的落后技术”。

后来mysql5有了这些技术,mysql又开始宣传自己“技术先进,支持视图和存储过程”

mysql比pg支持window function和cte大概晚了十多年吧。

我最近又遇到有国内某个mysql体系的分布式数据库团队忽悠政府客户“存储过程是落后的东西”,那个味道真是一样一样的。

总的来说我觉得mysql也不至于有多烂,但是这个社区文化是真的有点儿问题。

我们这些老家伙还没死呢。

答主:Aelita https://www.zhihu.com/question/369022336/answer/3119156824

MySQL主要是免费简单,在没接触过数据库的初级开发者中可以快速搭建一个数据库进行学习和使用。同时MySQL相对比较小,因此常用于中小网站。

至于SQL Server,这个东西和Oracle数据库一样。

SQL Server和Oracle除了贵没有缺点,且贵不是它的缺点,是你的缺点。


作为一个同时使用过SQL Server和MySQL的从业者,说下我的感受。

效率方面

SQL Server是最早开始接触的,大学里的《数据库原理》使用的示例数据库就是SQL Server,它的图形化界面让很多初学者只需要了解一些基础的SQL语法知识就可以直接使用了。

如果想在界面上做一些功能性的实验,比如建表,加索引,加字段,加列默认值,加主键,加DBLINK等等都可以在管理工具(SQL Server Management Studio)上直接操作,

此外备份还原,定时任务,主从配置(发布与订阅)等都可以通过管理工具来完成,这是此前用管理工具给大家分享的SQL Server的主从配置《SQL中的发布与订阅

可以说SQL Server的管理工具能完成很多配置性工作。

MySQL一些简单的功能也可以通过管理工具(如:Navicat,DBeaver或Workbench)来完成,但是一些复杂的功能,如主从复制还是需要通过命令来修改配置文件来实现。这是此前分享给大家的MySQL的主从复制《MySQL主从复制

在工作效率方面对于新手来说,SQL Server和MySQL本质上没有太大的区别,都可以满足日常的编程需求,但是对于数据库管理,显然SQL Server会更加高效一点。

语法方面

虽然用MySQL的时间比较多,但是很多地方还是觉得SQL Server的语法更具有优越性,给大家举个栗子。

存储过程由于MySQL的性能问题,一直是被禁止使用的,但是如果你用过SQL Server,你就会发现存储过程可以解决很多复杂的问题,其中最明显的就是性能相对较高,网络开销低以及安全性较高(这里只考虑可应用存储过程的场景)

之前工作过的一家公司,很多数据相关的功能程序就写在SQL Server存储过程里,数据库一直没听说有什么故障,倒是应用程序经常出问题。

如果对存储过程感兴趣的,可以看我分享的这篇《SQL存储过程的详细用法

开窗函数想必大家都很熟悉,但是在MySQL 8.0版本之前这个功能是没有的,而SQL Server早在2005版本就开始支持开窗函数了。

时至今日很多云数据库上面运行的依然是MySQL 5.X版本,要想写个稍微复杂的查询需求简直不敢想象。

费用与安全方面

SQL Server的缺点就是贵,如果企业想购买全套的SQL Server服务,一年至少几十万打底(根据服务内容的多少价格不同),

而MySQL以开源著称,同等硬件配置需求,云数据库一年可能也就几万块就搞定了。

但凡事都有正反两方面,SQL Server贵有贵的道理,如果你用过SQL Server的服务,一般不会发生数据丢失的问题;MySQL虽然便宜,但是在数据安全方面就只能寄希望于云厂商是否给力了。根据过往的情况来看,一旦云服务器厂商发生数据丢失基本就找不回来了。

跨平台方面

SQL Server 2017版本也开始支持Linux系统,相比MySQL很早就支持多平台部署确实有点晚了。

大家还知道哪些方面的不同,欢迎评论区补充

0 人点赞