专栏首页AustinDatabasesMYSQL VS PostgreSQL 外国佬怎么选--那个更好?

MYSQL VS PostgreSQL 外国佬怎么选--那个更好?

MYSQL vs PostgreSQL 的话题应该属于经久不衰的话题,类似 REDIS VS MONGODB (我比较奇怪这两个是怎么被强拉硬拽到一起的)。作为节假日的最后一个工作日,技术就别再到鼓捣鼓捣,说点喜闻乐见的话题。

偶然晚上翻到一篇国外的BLOG 时间是 2018年9月的文章,正好是一年前。

这篇文章出自 .io ,具体代表什么,可以XX一下。

这篇文章一开始就将国外使用 MYSQL 和 PG 的公司划分了出来。

PostgreSQL 这边的阵营有以下公司

Apple IMDB Macworld , Debian Fujitsu , Red Hat , Sun Microsystem

Cisco , Skype ( 请不要怀疑现在还有没有Sun Microsystem 以及这篇英文的文章的时间,我已经查过了)

MySQL 这边有以下一些公司

GitHub , NASA ,Facebook ,Twitter, YouTube ,Tesla

从上边的两边使用不同数据库的公司对比,很清晰的看出,大部分传统的公司,大多选择了 PostgreSQL , 大部分互联网类似的公司使用了 MySQL

在这样的开场白后,文章开始从数据库的结构开始阐述两种数据库的不同

PG 被定调为对象关系数据库管理系统(ORDBMS),强调可扩展性标准遵从性,支持事务性的,具有可更新和物化的视图、触发器和外键,还支持函数和存储过程的数据库。同时强调了,POSTGRESQL 在具备以下的一些功能后,还支持 NOSQL 的功能,并可以提上台面。

MYSQL 这边被定调关系数据库管理系统(RDBMS),同时也是支持事务,视图,触发器,外键,函数存储过程并且从MYSQL 5.7 以后也开始支持NOSQL的开源流行的数据库。

反正看到这里,我没有从读到的信息里面看到倾向性,或是一开头就看出是哪个公司的X文。

文章下面就开始了各种比较,从以下一些方面

1 索引支持的类型

2 数据复制方式的支持模式

3 数据库语法的标准型

4 数据引擎方面

这里在索引类型方面文章提到PG 支持的索引类型较多,数据复制的方式支持的模式也有两种,MYSQL 截止目前,其实也开始支持两种复制模式(不过你的升级到 MYSQL 8.017),以及提到了PG 在语法方面的严格性。在数据库引擎层,倒是并未过多提起,其实也都各有千秋,也各有自己的弱点,这里就不提了,见仁见智。

当然文章最后还是比较公平的,但在最后最后,还是不忘说了一句,PG 正在变得越来越流行并且部分功能比MYSQL 还是要技高一筹的。

当然这篇文字并不是要大家看完之后,抛弃哪个,就使用哪个,我觉得那是不负责任和幼儿园的行为。

从开头开始,我们就可以看出,如果你是传统的企业,或者你的业务逻辑比较复杂的情况下,一些公司在数据库层面的首选可能是 POSTGRESQL,因为到目前为止,你很少听说有在 MYSQL上面实现很复杂的 存储过程,函数,以及类似ORACLE 那样的SQL 的写法去加载到MYSQL中,当然你可以用程序来实现,(今天不想讨论程序层,不是我的强项也让文字变得更冗长)。而互联网企业一般可能由于业务简单,以及需要更灵活的一些架构,并且开发的LEVEL 也比较高,在这些基础上,大致都在选择MYSQL 作为基础数据库,进行各种分库。

而从我最近一段时间使用两种数据库的过程中,自己也感觉到一些文章中没有提到的不同,比如开发在问我

我的这个表设计的时候主键的设计要注意什么,如果是MYSQL 我会很严肃的告诉他们一些关于MYSQL 主键设计中的一些需要注意的地方,而如果是POSTGRESQL, 则我会持比较开放的态度,基本上不会有特别的要求。(这当然是索引组织表 VS 堆表之间的差异)从设计的角度来看可能POSTGRESQL 对开发人员更加的友好一些,初级的设计人员即使设计的不是特别NICE,也不会出太大的乱子,而MYSQL 则需要设计的人员,一开始(有ORACLE 的表设计的多年的经验,也不见得特别有用)会要求比较多,例如范式我们是不是要严格要求(当然不),以哪种观点来设计表。

当然先到先得的观点,MYSQL在目前是占有上峰,并且在去ORACLE的国内情形下,还能多占更多的份额。可有些公司的本来使用传统数据库好好的,但一换到MYSQL 就开始出问题,诚然是开发人员水平不够,道航不够深,还用老方式去设计,造成MYSQL表中充斥了, 大量的 trigger , procedure, 外键,这样设计出来的东西...... ,各种ORACLE 的原来的SQL 照搬到MYSQL 中使用,我也不是没有见过,一塌糊涂,最后给与MYSQL 一个很差的评语,这本身就是对MYSQL 的不公平,因为你不懂他。

换言,POSTGRESQL需求 在招聘广告里面出现的次数越来越多的原因也是,一部分企业吃到了苦头,在不具备使用MYSQL 的基础上,硬上,最后各种失败后的一种回归。

其实开源数据库行业里面,传统的数据库无非就是MYSQL VS POSTGRESQL 那个数据库更好,这样的话题不如改成,那个更适合你,这样的话题更成熟。

例如你的开发人员从未使用过MYSQL 数据库,并且也不是互联网企业(大,中厂)训练过来的,基本上一直用ORACLE 的开发人员,你不如让他安心的使用POSTGRESQL ,至少你的这个项目不会出现各种针对MYSQL 的怪异设计,或者原来一直维护ORACLE SQL SERVER 这样传统数据库的企业,也就别费劲,赶时髦上MYSQL,先问问如何承受的了互联网企业那些压力和各种踩坑,填坑的速度。

O 对了,个人还有对使用这两个数据库的一个小看法,POSTGRESQL 如果出现一些功能上的需求,一般去找 extension list 而MYSQL 如果想扩展功能,一般都去找第三方的工具,我想你明白我在说什么。

最后祝大家国庆7天,平平安安,系统运行正常,祖国昌盛,人民安康!

本文分享自微信公众号 - AustinDatabases(AustinDatabases),作者:carol11

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MYSQL 8 vs MYSQL 5.7 ORACLE 到底怎么想的? (二)

    1 在MYSQL 5.7 临时表包含了一个 "converting HEAP to on disk", 意思当临时表达到最大的内存使用的限制(一个表一个)16M...

    AustinDatabases
  • “偶遇” 爱可生 与 MYSQL 大型应用

    今天“偶遇” 爱可生的技术人员,经过了两个小时的交流,又重塑的我对大型系统中对MYSQL 的应用, 这绝对不是广告,这绝对不是广告,这绝对不是广告,重要的还的说...

    AustinDatabases
  • 人生呀,如梦,MYSQL 8.0.15-5

    人生呀,如梦,我觉得只要不投降,就是成功。(周星驰的电影都是多年后成为经典的,这也许就是一种成功)。MYSQL 其实作为数据库产品,对比其他数据库产品(不管收费...

    AustinDatabases
  • MYSQL 8 vs MYSQL 5.7 ORACLE 到底怎么想的? (二)

    1 在MYSQL 5.7 临时表包含了一个 "converting HEAP to on disk", 意思当临时表达到最大的内存使用的限制(一个表一个)16M...

    AustinDatabases
  • “偶遇” 爱可生 与 MYSQL 大型应用

    今天“偶遇” 爱可生的技术人员,经过了两个小时的交流,又重塑的我对大型系统中对MYSQL 的应用, 这绝对不是广告,这绝对不是广告,这绝对不是广告,重要的还的说...

    AustinDatabases
  • MYSQL 从如何尝试抛弃慢查询谈起

    MYSQL 的慢查询一般是开发人员和DBA,获取糟糕的SQL和可能缺少索引的一种方法,这样的方法已经伴随了MYSQL 一致到了MYSQL 5.7,但是否我们可以...

    AustinDatabases
  • MYSQL 8 GROUP REPLICATION 的新感觉

    MYSQL 8 Group Replication 最近开始做实验了,MYSQL 5.7的MGR 在使用了不到一年的时间里面,发现了不少问题,也解决了不少问题。...

    AustinDatabases
  • 人生呀,如梦,MYSQL 8.0.15-5

    人生呀,如梦,我觉得只要不投降,就是成功。(周星驰的电影都是多年后成为经典的,这也许就是一种成功)。MYSQL 其实作为数据库产品,对比其他数据库产品(不管收费...

    AustinDatabases
  • Hey, MYSQL 8 用户管理要不要了解一下!

    这口吻,估计马上就的把电话挂了, 不过MYSQL 8 的用户管理,老手,新人,还是了解一下比较好,当然如果你已经有了 ORACLE ,PG, SQL SERVE...

    AustinDatabases
  • MYSQL 8 Serialized Dictionary Information

    随着MYSQL 8 越来越稳定,并且开始使用的人和公司越来越多起来,掌握MYSQL 8 的工具变得越来越重要。不赶到别人前头,那就只能follower.

    AustinDatabases

扫码关注云+社区

领取腾讯云代金券