admin管理员组

文章数量:1646246

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

RDMS起源和历史

1973年,加州大学伯克利分校启动了一个名为“Ingres”的项目,为关系数据库管理系统制定新标准。该项目是用C编写的,并根据开源许可证向公众发布。根据[Wikipedia关于此事的文章](https://en.wikipedia/wiki/Ingres_(database),Ingres的优势在于它使用了QUEL,与SQL相比,QUEL是一种更正式但更精确的查询语言。

1985年,该项目在伯克利以“Postgres”的名义进行了修改,后来改为“PostgreSQL”,以确认SQL的可访问性。1994年,Michael Wideius创建了一款名为“MySQL”的竞争产品。该产品于2010年由甲骨文通过公司收购收购。

这揭示了两者之间的第一个主要区别-PostgreSQL是一个由社区支持志愿者维护的免费产品,而MySQL是一个具有专业部署和支持的公司产品。

PostgreSQL与MySQL-缺失功能列表

2017年9月5日,黑客新闻用户“kaamos”发布了MySQL中存在的功能列表,但在当时最新版本的PostgreSQL 9.2.23中缺失:

  • 用户变量

  • 优化器提示

  • 虚拟列

  • 优化器跟踪

  • 聚集索引

  • 声明性分区

  • emi同步复制

  • 内置事件调度程序和逻辑复制

  • 能够在创建数据库时选择数据页大小

  • 具有自动分片的分布式内存网格

  • 同步多主群集(Galera,组复制)

  • 页面级压缩、加密和增量备份

  • 编写类似MyRocks和TokuDB的优化存储引擎

  • NoSQL客户端API(HandlerSocket、memcached协议、X协议)

  • 使用ALTER TABLE添加新列时指定列顺序的能力

  • 高效的MVCC实现,不受XID环绕问题和真空问题的影响

Kaamos指出,这些功能“对于设计和运营互联网上最繁忙网站的人来说是巨大的,(w)这可能是MySQL仍然在该领域大放异彩的原因。”

在回复kaamos的功能愿望列表时,用户“fusiongyro”回答说,MySQL中的高级复制策略由于分布式一致性错误而导致“脱发和离婚”。根据他的经验,最终用户认为MySQL复制功能将在没有规划或监督的情况下按预期运行。当这种假设失败时,他们会经历一系列停机和错误。

2019年PostgreSQL与MySQL讨论

PostgreSQL vs MySQL上的2019年黑客新闻线程提供了更多关于开发者共识的见解,即哪种更好。用户“matthewmacleod”建议使用PostgreSQL作为默认RDM,除非有理由不这样做。用户“jerrytsai”表示,PostgreSQL在科学意义上具有更好的数据分析功能。

“Madhadron”建议开发者使用他们更熟悉的东西。该用户指出,部署的简易性与长期可行性无关。用户“nmpennypacker”补充说,PostgreSQL在本地强制执行数据类型,而MySQL没有。该用户表示,MySQL中随意使用的数据类型可能会导致“污染数据”。

用户“gtsteve”表示,PostgreSQL和MySQL对客

本文标签: 哪种关系数据库postgresqlmysql