百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

MySQL如此万能,为啥还需要商业数据库或PG?

ccwgpt 2025-03-01 13:09 48 浏览 0 评论


最近,小编在知乎上看到这样一个问题:


MySQL已经可以干大部分事情了,还有必要使用商业数据库或者PostgreSQL吗?


这个问题涉及到很多方面。MySQL的innodb引擎有事务了,而且也能进行很多比较复杂的查询,包括嵌套查询等。如果数据量比较大,参考大厂,也能做到很大的集群,把Oracle去掉。而且现在流行的hadoop很多时候都是和MySQL配合的。


这样看起来的话,其它数据库好像都能用MySQL来代替,并且MySQL是开源免费的。如果担心Oracle操控MySQL,还可以选择MariaDB。为何还有那么多企业买商业数据库?一般的商业数据库价格也不低。


还有就是有一种据说比MySQL更开放的PostgreSQL数据库,感觉它的用户没有MySQL的那么多。而且它能做的MySQL都能做,例如查询优化、子查询、索引、分区等等。


为什么不能在所有场景下都使用MySQL呢?


秉持着文明和平的学习态度,以及促进国产数据库生态繁荣发展的初衷(感受到小编满满的求生欲了吗),小编精选了几位知乎网友的精彩回答,分享给大家学习交流(勿上升、勿引战)


1号知乎网友:诗与星空


因为需要背锅侠。


对于商业软件来说,稳定远远比便宜更重要。


真实案例:某年某央企千万级用户百亿金额的上古系统,用的Sybase数据库,在一次常规归档的时候,意外遇到一块硬盘损坏,负责硬件的小哥没有和正在进行归档的团队充分交流,顺手联系厂家换了新硬盘。


做了Raid的磁盘,更换后,会有一段同步数据的时间,恰好这个时候数据库归档进入最为关键的时点。


于是,数据库挂了。


回退也是个问题,因为恢复时间过长,可能会引起社会影响……


之前已经向社会发布公告,原定24小时对外公布48的停机时间,一下子超时了。IT经理通宵加班的时候,顺便准备好了辞呈。


千钧一发的时刻,SAP公司(Sybase被SAP收购)来人了,安排了号称Sybase四大天王的三位,最强的支持团队,又连续奋战了1个通宵,终于在凌晨6点前强行修复成功。


2号知乎网友:温酒


至少有一个场景MySQL是无论如何不能做的,那就是想办法把钱花出去。


成年人的世界里有一条准则:你体现的价值基本取决于你付出什么。


做业务的时候,如果你pay nothing,那么你一定get nothing,哪怕是在技术端,也是一样的。


付钱,在能力允许的前提下,让最多的人赚最多的钱。


那么当你面对危机的时候,就会有无数的人想尽办法来救他们的财神爷了,MySQL这方面的能力几乎是零。


我随便举个例子,银行数据库,要是用MySQL,一旦出了问题,谁来背这个锅?


技术部门?码农最懂码农了,你觉得你背得起吗?背不起?那就老老实实用Oracle或者SQLServer啊,它们有办法背。反正锅甩出去了,不在技术部门员工身上。


其实,选什么数据库,这个问题跟技术一毛钱关系都没有。跟技术有关系的,往往是选完了数据库以后的事情。


3号知乎网友:木风


前某厂员工可以很负责的说一句,去IOE的事迹内部宣传很多次了,就是为了省钱,仅此而已。如果Oracle免费,你看互联网大厂会用MySQL还是Oracle?


不管是性能、架构、对SQL标准的支持度,还是代码质量,Oracle、PG都是甩MySQL好几条街的。


互联网的特点是业务逻辑简单,但是并发量大,那么养一个厉害的中间件团队做好横向扩容就行了,同时尽量不使用复杂和嵌套的sql。某种程度上讲,已经在NoSQL化了,比如为了提高读性能进行的各种denormalization。


至于PG能做而MySQL不能做的,有很多,随便说一个:条件索引。


再说一个,一条插入语句插入n行数据,并返回所有插入行的主键,用mysql自增主键生成器,怎么做?做不到的。


再加一条,将非主键索引建为 clustered index,MySQL压根都不支持。


我差不多在10几秒内就能想到这么多MySQL没法做的事情,怎么会叫MySQL都能支持呢?


4号知乎网友:dbalex


首先,反驳一下题主的问题。


关于你说的“Oracle很差不能满足需要”,这完全是无稽之谈。很多大厂最初就是用的MySQL,后来性能上不去,于是引入了当时互联网行业第一台AIX小型机,跑Oracle,哎哟喂!那个爽啊!可劲用啊!性能完全不是问题啊,DBA生活也很安逸。这种架构在现在被称为“传统架构”,支撑了无数企业各种规模的信息系统。


既然如此,为啥还要去IBM、Oracle、EMC(去IOE),说白了,就是要从钱窟窿里跳出来,随着数据的不断增长,那将是个天文数字啊!


我们来看一下这个架构是怎么烧钱的。要承受不断增长的业务压力,一般来说,无非两种手段,一种是提高主机性能,加CPU加内存;一种是加机器。要知道Oracle license是怎么算的呀,那可是按照CPU个数算的呀!你加多少CPU加多少机器最终都是要加钱的呀!


好,现在来比较一下MySQL跟商业数据库的区别。先来打个比方:如果Oracle比作全聚德,那MySQL就是咸鸭蛋了。都挺好吃的对吧,但你不觉得区别还是挺大的么。那么,比起MySQL,Oracle牛在哪里呢?


1、数据库的心脏在于优化器,Oracle基于成本的优化器跟MySQL的优化器水平可不是差了一点点。


2、Oracle是多进程体系,MySQL是单进程多线程体系。说白了,Oracle可以充分的利用主机的CPU进行并行处理,MySQL则不能充分利用多核CPU。


3、数据安全性,商业数据库对数据提供完善的保护机制,保证关系数据库四原则ACID中D(Durability),并提供完善的售后技术支持服务,而开源的MySQL数据库没有人能给出以上承诺。


这三条是最关键的区别,还有几十条就不在此赘述了。1和2决定了MySQL的性能被Oracle甩出N条街,特别是在OLAP领域,偷偷告诉你,官方版MySQL现在还不支持hash join,Oracle分分钟干完的事,MySQL可能要忙活一晚上;3决定了在一些关键领域,如金融、电信、保险(大行要是每隔几天丢几笔存款,那它估计活不了几天就该关门了)等,MySQL是没有任何立足之地的,除非在一些非关键业务上。


那么,MySQL既然跟Oracle比起来差距这么大,为什么却如此流行呢?


MySQL作为一个开源的数据库,发展速度还是很快的。题主说的关于查询优化、分区等等,确实是借助开源力量的产物,而且InnoDB支持MVCC也是部分商业数据库没有做到的(如IBM DB2),所以MySQL承担一些业务逻辑简单的互联网应用非常合适.


另一方面,MySQL作为免费的开源数据库,扩展的成本是很低的,结合廉价的PC,扩展到几千台甚至上万台的规模用不了多少预算,这就是屌丝流!当然,淘宝那一大堆神仙级的技术牛人可不仅仅是把这几万台机器装上MySQL就算完了,关于他们的神仙事迹,我就不在此多说了,想了解的话就看你自己的执行力了,书籍、博客已经提供了很多你想学到的知识。


如有纰漏,欢迎指正。


5号知乎网友:萝魏紫


让有实际经验的来给你讲讲,百度得到的都没什么用。MSDBA认证,Oracle终生拥护者萝魏紫给你解释下这个问题。


三大关系型数据库:MySQL、MSSQL、Oracle,为什么Oracle卖4倍贵?还有很多公司不用MySQL?为什么MSSQL比MySQL企业版贵3倍,还有很多公司不用MySQL,为什么MySQL有开源版还有很多公司要用企业版?


第一,服务。


我有一个项目,用的Oracle的RAC。我怀疑数据库有问题,一个电话过去,Oracle派一个团队过来——4个人,驻场一个月,调试、测试、出报告,给我把哪些配置配错了?哪些配置可以优化?哪些工具可以用来继续监测?讲得清清楚楚。连不是Oracle的问题,都顺手提出来了。


我还有一个项目,用的MSSQL SEVER AG。我怀疑数据库有问题,电话是不接的。要上网填ticket,然后客服打给你,这种客服你懂的,P用都没有。然后一路升级,到一半,发现你的Window没有打全patch,直接postpone,直到你打全patch再说,我只好请Boss调了自己公司其他部门的Wintel 服务团队过来帮忙看,解决了。


MySQL我没用过企业版,我帮几个朋友调试过他们自己的库。除了满大街查google,还能做啥?要是你一查百度,完了,漫天中文ctrl+c ctrl+v 的blog,前言不搭后语。


第二,健壮性。


Oracle你以为他只是数据库?他卖exadata,整体数据库跑在上面。就算他单独卖的数据库,他的HA集群是自己做的。我十多年用过几百台OracleHA,就没见过所有节点挂掉的。RAC的切换非常快,毫秒级别。而MSSQL的集群,我真实看到过AG内切换所有节点下线几秒钟。而MySQL集群?你能像阿里那样开发大量持久化中间件?不能的话,我有一个解决方案:定期带服务器去庙里烧烧香。


第三,功能性。


Oracle三大工具:AWR、ADDM、ASH report,谁用谁知道,用了都说好。MSSQL 的trace file你要看?对不起,先装个MSSQL客户端。装了你也看不懂,完美符合MS系所有的习惯。要不是找到一个微软内部用的自动分析工具,我是绝对不看trace file的。MySQL 听说有个enterprise monitor,不过没用过。开源版大概只能看看服务器日志,或者装zabbix……


大家对于"MySQL已经可以干大部分事情了,还有必要使用商业数据库或者PostgreSQL吗?"这一问题,有怎样的思考和想法呢?欢迎在留言区交流~



整理丨dbaplus社群

来源丨网址:https://www.zhihu.com/question/21793412

*仅为提供参考和学习交流,不代表dbaplus社群立场!本文为dbaplus社群整理校对,如需转载请标明出处。dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn

相关推荐

NET版本众多,傻傻分不清楚

面对.NET众多的版本,尤其还有几个名称的情况下,相信很多初学C#的开发人员都很困惑,搞不清究竟该怎么选择。下面就列举一下.NET的主要版本及其区别:.NETFramework(传统版本,仅适用于W...

.NET Framework 和 .NET Core 有啥区别?如何选择?

.NETFramework和.NETCore都是由Microsoft开发的软件框架,用于创建Windows应用程序和Web应用程序。它们的主要区别在于:支持的操作系统:.NET...

「分享」介绍一款倍受欢迎的.NET 开源UI库

概述今天要带大家了解的是一款WPF的开源控件库MahApps.Metro。MahApps.Metro是用于创建现代WPF应用程序的工具包,它许多开箱即用的好东西。目前支持的NETFramework...

.NET 5.0正式版发布:应用可在ARM64上原生运行

更多:o梵蒂冈图书馆频繁遭黑客攻击oNPM包被发现窃取敏感的Discord和浏览器文件o作者:硬核老王o(本文字数:712,阅读时长大约:1分钟).NET5.0正式版发布:应用可...

盘点8个热门.Net开源项目

一、SmartFormat:轻量级文本模板库,轻松替代string.Format项目地址:https://github.com/axuno/SmartFormatSmartFormat不仅继承了s...

.NET与Java开发:一场从框架到应用实例的深度对决

在软件开发这片广袤的战场上,.NET与Java两大开发平台如同两位身经百战的将军,各自率领着庞大的开发者队伍,在不同的应用场景中大放异彩。今天,我们就来一场从框架到应用实例的深度对决,看看这两大平台究...

TouchSocket:一个功能强大且易于使用的 .NET 网络通信框架

项目介绍TouchSocket是一个功能强大且易于使用的.NET网络通信框架,适用于C#、VB.Net和F#等语言。它提供了多种通信模块,包括TCP、UDP、SSL、WebSocket、Mo...

远离报错烦恼!深入全面掌握.NET Framework

由于Windows系统对.NETFramework这一系统组件有着极为特殊的要求,而部分应用软件及游戏对其的依赖性也近乎达到了驱动级的水准,使用或安装不当会遭遇许多“未知”的问题,因此如何掌握.NE...

想自己搭建.Net Web框架,开源项目太庞大看不懂,可以看这个教程

大家好,我是编程乐趣。一直以来,我都在运营知识星球,这个月也开始全职专心编写教程了。当时编写教程,就是发现很多程序员工作多年了,都没自己搭建过框架,也没接触过公司的框架底层代码。这就导致一些问题,无法...

.NET 8 + React 18 一体化开发框架!苏州码农十年匠心打磨

开篇前言从2014年入行至今,从WebForms到MVC,从JavaScript到React/Vue,从.NETFramework到.NETCore/8,技术栈的变迁伴随了我整个职业生涯。去年,我...

.Net Framework详解

相信有不少小伙伴遇到过这种情况:安装软件时提示.NetFramework未安装导致软件无法打开,或者需要安装.NetFramework4.0以上的组件。那.NetFramework是什么呢?....

系统小技巧:深入全面掌握.NET Framework

由于Windows系统对.NETFramework这一系统组件有着极为特殊的要求,而部分应用软件及游戏对其的依赖性也近乎达到了驱动级的水准,使用或安装不当会遭遇许多“未知”的问题,因此如何掌握.NE...

前端架构师成长之路:如何在 Vue 的计算属性中传递参数

在Vue中,计算属性(computed)是从其他响应式属性派生的属性,是用于自动监听响应式属性的变化,从而动态计算返回值。计算属性(computed)通常是一个没有参数的函数。当然如果需要像调...

Vue2 vs Vue3:核心差异与升级指南

Vue3自2020年发布以来,凭借其革命性的改进迅速成为开发者关注的焦点。本文将从架构设计、API模式、性能优化等多个维度深入对比Vue2和Vue3的核心差异,并提供代码示例帮助开发者...

突发!Vue3 投屏神器引爆程序员朋友圈

【AlarmLevel】重要【AlarmTitle】突发!Vue3投屏神器引爆程序员朋友圈【AlarmOverview】最近GitHub上名为vue-screen-share的仓库突...

取消回复欢迎 发表评论: