PostgreSQL与MySQL优劣对比

1、PostgreSQL相对于MySQL的优势

Pgsql可靠性、数据一致性与完整性最为最高优先级,这点上更符合金融的诉求

稳定性极强,比mysql稳定性更好。结合了许多安全存储和扩展最复杂数据工作负载的功能

可靠性,灾难恢复
1.预写日志(WAL)
2.复制:异步,同步,逻辑
3.时间点恢复(pitr),主动备用

安全性
1.身份验证:GSSAPI, SSPI, LDAP, SCRAM-SHA-256, 证书等
2.强大的访问控制系统
3.列和行级安全性

PostgreSQL 的特性包括:

  • 时间点恢复 (PITR) 将数据库还原到特定时间点。
  • 使用 pgBackRest 等工具记录对数据库的所有更改的预写日志 (WAL)。

PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景

PostgreSQL的各种丰富的功能和对事务的支持,可以满足实际金融业务的交易需求;

PostgreSQL的物理复制保证数据库零丢失,相对于MySQL基于binlog的逻辑复制。可以高效快速地将数据库可以跨机房,设置跨region同步,可以满足业务的在各region本地高效读的需求

2、极限性能稳定

任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显出现一个波峰后下滑(5.5版本之后,在企业级版本中有个插件可以改善很多,不过需要付费)。

3、有丰富的几何类型

PG 多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap 等数据类型,相比之下mysql就差很多,instagram就是因为PG的空间数据库扩展POSTGIS远远强于MYSQL的my spatial而采用PGSQL的。

4、可以使用函数和条件索引,调优非常灵活

PG 的可以使用函数和条件索引,这使得PG数据库的调优非常灵活,mysql就没有这个功能,条件索引在web应用中很重要。

5、可以做到同步,异步,半同步复制

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

PostgreSQL完全免费,而且是BSD协议,如果你把PostgreSQL改一改,然后再拿去卖钱,也没有人管你,这一点很重要,这表明了PostgreSQL数据库不会被其它公司控制。相反,MySQL现在主要是被Oracle公司控制。

2、MySQL相对于PG的优势

1)innodb的基于回滚段实现的MVCC机制,相对PG新老数据一起存放的基于XID的MVCC机制,是占优的。新老数据一起存放,需要定时触 发VACUUM,会带来多余的IO和数据库对象加锁开销,引起数据库整体的并发能力下降。而且VACUUM清理不及时,还可能会引发数据膨胀。

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

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

4)MySQL相对于PG在国内的流行度更高,PG在国内显得就有些落寞了。

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

总结

总体上来说,开源数据库都不是很完善,商业数据库oracle在架构和功能方面都还是完善很多的。从应用场景来说,PG更加适合严格的企业应用场景(比如金融、电信、ERP、CRM),但不仅仅限制于此,PostgreSQL的json,jsonb,hstore等数据格式,特别适用于一些大数据格式的分析;而MySQL更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景(比如google、facebook、alibaba),当然现在MySQL的在innodb引擎的大力发展,功能表现良好。

PostgreSql对比MySQL优势相关推荐

  1. PostgreSQL与MySQL优势比较

    原文:http://bbs.chinaunix.net/thread-1688208-1-1.html 特性 MySQL PostgreSQL 实例 通过执行 MySQL 命令(mysqld)启动实例 ...

  2. postgresql对比mysql

    1.mysql查询优化器不够成熟,对复杂查询处理较弱: postgresql有很强大的查询优化器,支持很复杂的查询处理,比如递归查询 2.mysql表修改列,基本上重建表和索引,会花费很长时间:而po ...

  3. PostgreSQL与MySQL开源协议对比

    前言 作为开源数据库的杰出代表,主要来对比PostgreSQL与MySQL的版权.版权可以理解为许可(License),直接与开源协议的描述相关,下面来看一下两者的许可表述. PostgreSQL许可 ...

  4. PostgreSQL与MySQL比较

    2019独角兽企业重金招聘Python工程师标准>>> 特性 MySQL PostgreSQL 实例 通过执行 MySQL 命令(mysqld)启动实例.一个实例可以管理一个或多个数 ...

  5. PostgreSQL和MySQL技术全面剖析

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 本文介绍MySQ ...

  6. 【美菜网】PostgreSQL与MySQL比较

    MySQL相对于PostgreSQL的劣势: MySQL PostgreSQL 最重要的引擎InnoDB很早就由Oracle公司控制.目前整个MySQL数据库都由Oracle控制. BSD协议,没有被 ...

  7. PostgreSQL vs MySQL——哪种关系数据库更好?

    PostgreSQL和MySQL是世界上最流行的两种关系数据库管理系统(RDMS).包括商业企业和开源基金会在内的所有市场人口都在使用它们.它们的共同点是强大的网络容错能力和对数据聚类的支持.这篇文章 ...

  8. 比较PostgreSQL与MySQL两大开源关系数据库管理系统

    MySQL 和 PostgreSQL 是两大开源关系数据库管理系统 (RDBMS),长期以来被证明具有高度的可靠性和可扩展性,在本文中,我们将探讨 PostgreSQL 与 MySQL,以及它们之间的 ...

  9. 免费数据库(SQLite、Berkeley DB、PostgreSQL、MySQL、Firebird、mSQL、MSDE、DB2 Express-C、Oracle XE

    免费数据库(SQLite.Berkeley DB.PostgreSQL.MySQL.Firebird.mSQL.MSDE.DB2 Express-C.Oracle XE 2009-02-16 11:2 ...

  10. PostgreSQL 与 MySQL:有什么区别?

    PostgreSQL 和 MySQL 在用途.好处.特性和特点上的异同 PostgreSQL 和 MySQL 是将数据组织成表的关系数据库.这些表可以根据每个表共有的数据链接或关联.关系数据库使您的企 ...

最新文章

  1. Nginx学习3:反向代理实例
  2. 大咖 | 斯坦福教授骆利群:为何人脑比计算机慢1000万倍,却如此高效?
  3. 北京交通大学计算机科学与技术研究生导师,熊轲_北京交通大学研究生导师信息...
  4. python自学什么书比较好-有什么好的自学 Python 的书籍推荐?
  5. redis集群部署一直卡在Waiting for the cluster to join ......
  6. 跨链Cosmos(3)IBC协议二
  7. 使用 SQL Server 2000 索引视图提高性能1
  8. tkinter显示mysql表_Python(Tkinter)如何只显示Mysql记录而不显示列表?
  9. 再见,中关村“金三角”!
  10. [高光谱] Hyperspectral-Classification Pytorch 数据集的读取、划分、加载
  11. G1垃圾回收器-----基本知识及原理解析
  12. 创建hive的AES加密解密函数
  13. 2018 美团校招笔试题详解
  14. c语言图片处理函数库,C语言图形开发库函数graphics.doc
  15. Java语言实现的各种排序
  16. Elliptic Labs与Syntiant携手为Bosch的spexor设备打造持续在线的超低功耗体验
  17. 【程序】[Qt\C++] 图形化计算器——用QT5实现带括号优先级的GUI编程计算器
  18. 首富马斯克裁员大反转。
  19. 计算机电源原如何确定正常,电脑电源故障迅速准确判断方法
  20. 记录:Linux软件记录

热门文章

  1. 《赖氏经典英语语法》第三集
  2. 桌面在计算机的路径,电脑桌面文件存放路径
  3. Qt基于FFmpeg解码本地视频后再编码
  4. 服务器发送 微信通知,方糖,使用微信通知的小接口
  5. Android 如何检查麦克风是否被任何后台应用程序使用?
  6. select into from 和 insert into select 的用法和区别
  7. 微信公众号采集之免费采集公众号爆文工具
  8. Codeforces 1071 C - Triple Flips
  9. java6http,java http
  10. python(分隔符)