暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库基础选型之——PostgreSQL vs MySQL分析对比(三)

高可用环境对比
PostgreSQL支持一主一备、一主多备、级联复制、流复制以及逻辑订阅等原生的高可用架构,其性能稳定、可扩展能力强、灵活性高。
同时支持第三方开源软件的使用,包括中间件和开源软件,不仅能够保留原生高可用架构的读写分离、备份恢复等功能特性,还能提供自动故障转移、负载均衡方案等主流的高可用方案:
  • pgpool-II+PostgreSQL复制方案,实现实时复制备份、负载均衡等功能

  • patroni+etcd+PostgreSQL切换方案,实现节点健康检查、自动切换和故障转移等功能

  • repmgr+PostgreSQL故障管理方案,实现节点监控、故障切换等功能

MySQL 的复制是基于 binlog 的逻辑异步复制,复制模式有一主一备、一主多备、级联复制、循环复、主主复制。是官方自带的高可用性架构,架构简单,极易上手且官方在原有的异步同步基础上继续优化,推出半同步复制,GTID,并行复制等。
MHA 是一套较成熟的MySQL高可用环境下故障切换和主从复制的第三方软件。能够实现故障切换,并能在故障切换中,最大可能的保证数据一致性。
MGR (MySQL Group Replication)是MySQL自带的一个插件,可以灵活部署。官方推出解决基于传统异步复制和半同步复制的缺陷的高可用方案。有着高一致性、高容错性、高扩展性、高灵活性的优点。
主要对象支持情况

Oracle

PostgreSQL

MySQL

Views

支持

支持

支持

Package

支持

不支持

不支持

Procedure

支持

支持

支持

Function

支持

支持

支持

Trigger

支持

支持

支持

Materialized View

支持

支持

不支持

Database Link

支持

支持

支持

Sequence

支持

支持

不支持

Synonym

支持

支持

不支持

Type

支持

支持

不支持

上图对象的支持情况来看,PostgreSQL和达梦更接近Oracle,对于MySQL不支持的对象需要通过应用层代码替换实现。
PostgreSQL与MySQL优势对比
PostgreSQL 相对于MySQL的优势:
  • 在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨。

  • 存储过程的功能支持要比MySQL好,具备本地缓存执行计划的能力。

  • 对表连接支持较完整,优化器的功能较完整,支持的索引类型很多,复杂查询能力较强。

  • PG主表采用堆表存放MySQL采用索引组织表,能够支持比MySQL更大的数据量。

  • PG的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。

  • MySQL的存储引擎插件化机制,存在锁机制复杂影响并发的问题,而PG不存在。

  • PG对可以实现外部数据源查询,数据源的支持类型丰富。

  • PG支持三种表连接方式,嵌套循环,哈希连接,排序合并,而MySQL只支持嵌套循环。

  • PostgreSQL支持JSON和其他NoSQL功能,如本机XML支持和使用HSTORE的键值对。它还支持索引JSON数据以加快访问速度,特别是10版本JSONB更是强大。

  • PostgreSQL完全免费,而且是BSD协议,这表明了PostgreSQL数据库不会被其它公司控制。相反,MySQL现在主要是被Oracle公司控制。

MySQL 相对于 PostgreSQL 的优势:
  1. InnoDB 的基于回滚段实现的 MVCC 机制,相对 PG 新老数据一起存放的基于 XID 的 MVCC 机制,是占优的。

  2. MySQL 采用索引组织表,这种存储方式非常适合基于主键匹配的查询、删改操作,但是对表结构设计存在约束。

  3. MySQL 的优化器较简单,系统表、运算符、数据类型的实现都很精简,非常适合简单的查询操作。

  4. MySQL 的存储引擎插件化机制,使得它的应用场景更加广泛,比如除了 InnoDB 适合事务处理场景外,Myisam 适合静态数据的查询场景。

从应用场景来说,PostgreSQL 更加适合严格的企业应用场景(比如金融、电信、ERP、CRM),但不仅仅限制于此,PostgreSQL的 json,jsonb,hstore 等数据格式,特别适用于一些大数据格式的分析。而 MySQL 更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景(比如 Google、Facebook、Alibaba),当然现在 MySQL 的在 InnoDB 引擎的大力发展,功能表现良好。
PostgreSQL成为最佳选择,因为像曾经的Linux一样,它是一个开源工具,可以执行特定任务而不会增加复杂性。它的设计易于使用和实施,关注点严格在数据库上,而不必浪费资源添加“功能”去管理其他IT环境。PostgreSQL提供了更好的许可、更好的数据一致性以及灵活的扩展,满足市场的既要又要还要的需求,即:既要SQL通用性,又要NOSQL扩展性,还要多模开发便捷性;既要OLTP又要OLAP。

预告 | 2021 PG亚洲大会12月与您相约
PG ACE计划的正式发布
三期PostgreSQL国际线上沙龙活动的举办
六期PostgreSQL国内线上沙龙活动的举办

中国PostgreSQL分会与腾讯云战略合作协议签订

中国PostgreSQL分会与美创科技战略合作协议签订
中国PostgreSQL分会与中软国际战略合作协议签订
中国PostgreSQL分会“走进”北京大学
中国PostgreSQL分会“走进”深圳大学
PGFans社区核心用户点亮计划

PostgreSQL 14.0 正式发布

深度报告:开源协议那些事儿

从“非主流”到“潮流”,开源早已值得拥有

Oracle中国正在进行新一轮裁员,传 N+6 补偿

PostgreSQL与MySQL版权比较

新闻|Babelfish使PostgreSQL直接兼容SQL Server应用程序

四年三冠,PostgreSQL再度荣获“年度数据库”

中国PostgreSQL分会入选工信部重点领域人才能力评价机构

更多新闻资讯行业动态技术热点,请关注中国PostgreSQL分会官方网站

https://www.postgresqlchina.com

中国PostgreSQL分会生态产品

https://www.pgfans.cn

中国PostgreSQL分会资源下载站

https://www.postgreshub.cn

点击此处阅读原文

↓↓↓

文章转载自开源软件联盟PostgreSQL分会,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论