MYSQL和PostgreSQL哪个更好
这篇文章将为大家详细讲解有关MYSQL和PostgreSQL哪个更好,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一开始就将国外使用 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,先问问如何承受的了互联网企业那些压力和各种踩坑,填坑的速度。
关于“MYSQL和PostgreSQL哪个更好”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。