【4】PostgreSQL 与 MySQL 的比较

本文对比了PostgreSQL和MySQL在SQL标准、表连接、索引、数据一致性、MVCC机制、存储方式、优化器以及国内流行度等方面的差异,指出两者在企业级和互联网场景中的适用性。
摘要由CSDN通过智能技术生成

PG 相对于 MySQL 的优势

  1. 在 SQL 的标准实现上要比 MySQL 完善,而且功能实现比较严谨。
  2. 对表连接支持教完善,优化器的功能较完善,支持的索引类型很多,复杂查询能力强。
  3. PG 主要采用堆表存放,MySQL采用索引组织表,能够支持比 MySQL 更大的数据量。
  4. PG的主备复制属于物理复制,相对于 MySQL 基于 binlog 的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。
  5. PostgreSQL 支持 JSON 和其它 NoSQL功能,如本机XmL支持和使用 HSTORE的键值对。它还支持索引 JSON数据以加快访问速度,特别时 10版本 JSONB 更是强大。
  6. PostgreSQL 完全免费,而且是BSD协议,如果你把 PostgreSQL 改一改,然后在拿去卖钱,也没有人管你,这一点很重要,这表明了 PostgreSQL 数据库不会被其他公司控制。相反,MySQL 现在主要是被 Oracle 公司控制。

MySQL 相对于 PostgreSQL 的优势

  1. InnoDB 的基于回滚段实现的 MVCC 机制,相对 PG 新老数据一起存放的基于 XID 的MVCC机制,是占优势的。新老数据一起存放,需要定时触发 VACUUM,会带来多余的 IO 和 数据库对象加锁开销,引起数据库整体的并发能力下降。而且 VACUUM 清理不及时,还可能会引发数据膨胀。
  2. MySQL 采用索引组织表,这种存储方式非常适合基于主键匹配的查询、删改操作,但是对表结构设计存在约束。
  3. MySQL 的优化器较简单,系统表、运算符、数据类型的实现都很精简,非常适合简单的查询操作。
  4. MySQL 相对于 PG 在国内的流行度更高,PG 在国内显得就有些落寞了。
  5. MySQL 的存储引擎插件化机制,使得它的应用场景更加广泛,比如除了 InnoDB 适合事务处理场景外,MyISAM 适合静态数据的查询场景。

总结

从应用场景来说,PG 更加适合严格的企业应用场景(比如金融、电信、ERP、CRM),但不仅仅限制于此,PostgreSQL 的 josn、jsonb、hstore等数据格式,特别适用于一些大数据格式的分析;而 MySQL 更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景(比如 google、facebook、alibaba)当然现在 MySQL 的 InnoDB 引擎的大力发展、功能表现良好。

扩展阅读

PostgreSQL 是中国第一的开源数据库?
https://cloud.tencent.com/developer/article/1847734

解密:为什么国产数据库使用PostgreSQL而不是MySQL
https://www.iidba.com/thread-290491-1-1.html

神仙打架:PG 和 MySQL 到底哪个更好用?
https://dbaplus.cn/news-11-3235-1.html

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值