PostgreSQL vs MySQL – 它们之间的区别

之间的主要区别 PostgreSQL 和 MySQL

  • PostgreSQL 是一个对象关系数据库管理系统 (ORDBMS),而 MySQL 是一个社区驱动的 DBMS 系统。
  • PostgreSQL 支持 JSON、XML 等现代应用程序功能,同时 MySQL 仅支持 JSON。
  • 比较 PostgreSQL vs MySQL 性能, PostgreSQL 执行复杂查询时表现良好,而 MySQL 在 OLAP 和 OLTP 系统中表现良好。
  • PostgreSQL 完全符合 ACID 标准,同时 MySQL 仅与 InnoDB 和 NDB 一起使用时才符合 ACID 标准。
  • PostgreSQL 支持物化视图,而 MySQL 不支持物化视图。
之间的区别 PostgreSQL 和 MySQL
PostgreSQL vs MySQL

什么是 PostgreSQL?

Postgre 是一个对象关系数据库管理系统 (ORDBMS)。它是由加州大学计算机科学系开发的。Postgres 开创了许多概念。

Postgre 是一个企业级关系数据库系统。它易于设置和 安装。它提供对 SQL 和 NoSQL 的支持。它有一个很棒的社区,当您在使用过程中遇到问题时,社区很乐意为您提供服务 PostgreSQL.

什么是 MySQL?

MYSQL 是一种流行且广泛使用的 DBMS 系统。其名称取自联合创始人 Michael Widenius 的女儿 My。MYSQL 的源代码可在 GNU GPL 下获得。该项目由以下公司拥有和维护: Oracle 公司。

它是一个 RDBMS(关系数据库管理系统),主要工作于 关系数据库模型.它使数据库管理更加容易和灵活。

之间的区别 MySQL 和 PostgreSQL

以下是 PostgreSQL 和 MySQL:

产品型号 MYSQL PostgreSQL
开源 这个 MySQL 该项目已根据 GNU 通用公共许可证的条款提供其源代码。 PostgreSQL 是根据 PostgreSQL 许可证,即免费开源许可证。它类似于 BSD 和 MIT 许可证。
酸顺应性 MySQL 仅与 InnoDB 和 NDB 一起使用时才符合 ACID 标准 Cluster 存储引擎。 PostgreSQL 完全符合 ACID 标准。
符合 SQL 标准 MySQL 部分符合 SQL 标准。例如,它不支持检查约束。 PostgreSQL 基本符合 SQL 标准。
社区支持 它拥有一个庞大的贡献者社区,他们主要致力于维护现有功能,偶尔也会推出新功能。 活跃的社区不断改进现有功能,同时其创新的社区努力确保其保持最先进的数据库地位。定期发布新的尖端功能和安全增强功能。
性能 它主要用于需要数据库进行直接数据交易的基于 Web 的项目。 它在大型系统中被广泛使用,因为读写速度很重要
最适合 MySQL 当只需要读取速度时,在 OLAP 和 OLTP 系统中表现良好。 PostgreSQL 执行复杂查询时表现良好。
支持 JSON MySQL 支持 JSON 数据类型,但不支持任何其他 NoSQL 功能。 支持 JSON 和其他 NoSQL 功能,如原生 XML 支持。它还允许索引 JSON 数据以实现更快的访问。
支持物化视图 支持临时表但不提供物化视图。 支持物化视图和临时表。
生态系统 MySQL 拥有动态生态系统,包括以下变体 MariaDB、Percona、Galera 等。 Postgres 的高端选项有限。不过,随着最新版本引入新功能,情况正在发生变化。
默认值 可以在会话级别和语句级别覆盖默认值 默认值只能在系统级别更改
B 树索引 在适当的情况下可以使用两个或多个 B 树索引。 在运行时合并以评估的 B 树索引是动态转换的谓词。
对象统计 相当好的对象统计数据 非常好的对象统计数据
Stack Overflow 问题 532 89.3
加入功能 限制连接能力 良好的连接能力
GitHub 之星 3.34k 5.6k
福克斯 1.6k 2.4k
使用该产品的知名公司 Airbnb、Uber、Twitter Netflix、Instagram、Groupon

历史回顾 MySQL

  • MySQL 是由一家瑞典公司创建的 MySQL AB 1995
  • Sun 收购 MySQL 1 年 AB 市值 2008 亿美元
  • Oracle 2010 年收购了 Sun,从而获得了 MySQL
  • 2012年, MySQL 被分叉成 MariaDB 由创始人 Michael Widenius 创立,隶属于 Monty Program Ab 公司
  • MariaDB 取代 MySQL 2013 年大多数发行版
  • Monty Program Ab 与 SkySQL 合并 - 2013 年
  • SkySQL Ab 更名为 MariaDB 公司- 2014

历史回顾 PostgreSQL

  • INGRES 成立于 1977 年
  • Michael Stonebraker 和他的同事开发了 Postgres- 1986
  • 支持真正的 ACID 和 PL/pgSQL – 1990 年
  • 95 年发布,名为 Postgres1995
  • Postgres95 重新发布为 PostgreSQL 6.0 - 1996
  • MVCC、GUC、加入语法控制和过程语言加载器 - 1998-2001
  • 版本 7.2 至 8.2:包括 Schema 支持、非阻塞 VACUUM、角色和 dblink 等功能 - 2002-2006
  • PostgreSQL 8.4 年发布 2009 款
  • PostgreSQL 9.0 年发布 2010 款
  • NYCPUG(纽约市 PostgreSQL 用户组)加入 PgUS(美国 PostgreSQL 协会)- 2013 年
  • PGconf 组织-2014

为什么使用 MySQL?

以下是使用 MYSQL 的一些重要原因:

  • 支持主从复制、横向扩展等功能
  • 它支持卸载报告、地理数据分布等。
  • 对于以读取为主的应用程序,使用 MyISAM 存储引擎的开销非常低
  • 支持常用表的内存存储引擎
  • 重复使用的语句的查询缓存
  • 您可以轻松地学习和排除故障 MySQL 来自博客、白皮书和书籍等不同来源

为什么使用 PostgreSQL?

使用的主要原因 PostgreSQL 是:

  • 提供有用的功能,如表分区、时间点恢复、事务 DDL 等。
  • 能够在完整的 PKI 基础设施中利用第三方密钥库
  • 开发人员可以修改开源代码,因为它是在 BSD 许可下进行的,无需回馈增强功能
  • 独立软件供应商可以重新分发它,而不必担心受到开源许可证的“感染”
  • 可以为用户和角色分配对象级权限
  • 支持AES、3DES等数据加密算法。
MySQL vs PostgreSQL 趋势
MySQL vs PostgreSQL 趋势

特点 MySQL

  • MySQL 是一个社区驱动的 DBMS 系统
  • 兼容各种平台,使用所有主流语言和中间件
  • 它提供对多版本并发控制的支持
  • 符合 ANSI SQL 标准
  • 允许基于日志和基于触发器的复制 SSL
  • 面向对象且兼容 ANSI-SQL2008
  • 多层设计,独立模块
  • 完全多线程,使用内核线程
  • 嵌入式数据库或客户端服务器模型中可用的服务器
  • 提供用于查询分析和空间分析的内置工具
  • 它可以处理任意数量的数据,最多可达 50 万行或更多
  • MySQL 可以在多种 UNIX 以及其他非 UNIX 系统上运行,例如 Windows 和OS/2
PostgreSQL vs MySQL

PostgreSQL vs MySQL

特点 PostgreSQL

  • 一个正在加速发展的活跃社区
  • 最常见的替代方案 Oracle、DB2 和 SQL Server
  • 可在您可能拥有的所有主要操作系统平台上运行
  • MVCC 支持大量并发用户
  • 广泛索引以实现高性能报告
  • 支持现代应用程序(XML 和 JSON)
  • 可传输技能/代码的 ANSI SQL 支持
  • 外键支持高效存储数据
  • 表连接和视图可实现灵活的数据检索
  • 复杂程序和事务的触发器/存储过程
  • 数据备份和读取可扩展性的复制

使用的缺点 MySQL

  • 与系统目录相关的事务 兼容
  • 有时服务器崩溃可能会损坏系统目录
  • 没有可插入的身份验证模块阻止集中管理帐户
  • 不支持角色,因此很难维护许多用户的权限
  • 存储过程不可缓存
  • 用于过程或触发器的表始终是预先锁定的

使用的缺点 PostgreSQL

  • 当前的外部解决方案需要较高的学习曲线
  • 主要版本没有升级功能
  • 数据需要导出或复制到新版本
  • Double 升级过程中需要存储
  • 索引不能用于直接返回查询结果
  • 查询执行计划不会被缓存
  • 批量加载操作可能会占用大量 CPU
  • 稀疏独立软件供应商支持

哪个更好 MySQL or PostgreSQL?

比较两者之后,我们可以说 MySQL 在提升自身竞争力方面做得很好,但另一方面 PostgreSQL,您不需要任何许可。它还提供表继承、规则系统、自定义数据类型和数据库事件。因此,它肯定比 MySQL.

结语

  • MYSQL 是一种流行且广泛使用的 DBMS 系统。它是一种 RDBMS(关系数据库管理系统),主要基于关系数据库模型。它使数据库管理更加轻松灵活。
  • Postgre 是一个对象关系数据库管理系统 (ORDBMS)。它是由加州大学计算机科学系开发的。Postgres 开创了许多概念。
  • MySQL 是由一家瑞典公司创建的 MySQL 1995 起。
  • PostgreSQL 95 年发布,名为 Postgres1995
  • MySQL 是一个社区驱动的 DBMS 系统。
  • PostgreSQL 拥有一个活跃的社区,正在加速其发展。