PostgreSQL 与 MySQL 相比,优势何在?

IMcoolgeek 秀才 2022-01-14 18:40:38

目前在国内应用PostgreSQL做开发会不会引来性能不佳和后期维护困难的问题?PostgreSQL的前景如何?全球有没有非常成功的应用案例?


20200117更新

随着时间,数据库会更新版本,请各位大佬回答问题时候麻烦加上版本

...全文
213 1 点赞 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gauss松鼠会 进士 2天前

附各自优点可进行参考:

1、PostgreSQL优点:

Ø 丰富的功能和扩展

PostgreSQL 拥有强劲的功能集,其中包括多版本并发控制 (MVCC)、时点恢复、细粒度访问控制、表空间、异步复制、嵌套事务、联机/热备份、完善的查询规划器/优化器以及预写式日志。它支持国际字符集、多字节字符编码和 Unicode,并且在排序、区分大小写和格式设置等方面具备区域感知功能。PostgreSQL 在可管理的数据量和可容纳的并发用户量方面均能够高度扩展。

Ø 可靠性和标准合规性

PostgreSQL 的预写式日志功能使其成为具备高容错能力的数据库。其庞大的开源贡献者群为其提供了内置社区支持网络。PostgreSQL 可与 ACID 兼容,并且对外键、连接、视图、触发器和存储的程序提供多种语言的全套支持。它包括大多数 SQL:2008 数据类型,包括 INTEGER、NUMERIC、BOOLEAN、CHAR、VARCHAR、DATE、INTERVAL 和 TIMESTAMP。此外,它还支持存储二进制大对象,包括图片、语音或视频。

Ø 开源许可

PostgreSQL 源代码可通过开源许可证获取,这让您能够根据需要自由使用、修改和实施它,同时无任何费用。PostgreSQL 不会产生许可费用,这消除了过度部署的风险。PostgreSQL 专属的贡献者和爱好者社区会定期查找错误并修复,致力于确保数据库系统的整体安全性。

2、MySQL 优点:

Ø 易于使用,性能强大

MySQL 数据库易于使用,功能强大,支持触发器、存储的程序和可以更新的视图,受到了 Web 开发人员的青睐。MySQL 包含多种实用工具,例如备份程序 mysqldump、管理客户端 mysqladmin 和用于管理工作和迁移工作的 GUI MySQL Workbench。

随着时间的推移,MySQL 推出了包含索引压缩的 B-tree 磁盘表、基于线程的内存分配和优化的嵌套循环连接等功能,提升了其性能。存储引擎中的行级锁定和一致性读取为 MySQL 提供了支持多用户并发的额外性能优势。

Ø 可靠性与安全性

MySQL 的 InnoDB 事务性存储引擎符合 ACID 模型,具有改进数据保护的功能,例如时间点恢复和自动提交。InnoDB 支持外键约束,可以避免不同表中的数据不一致,从而实现更高的数据完整性。

MySQL 附带强化而灵活的安全功能,其中包括基于主机的验证和密码流量加密。InnoDB 采用双层加密密钥架构进行静态数据表空间加密,具备额外的安全优势。

Ø 开源许可

MySQL 采用开源许可(GNU 通用公共许可),您可以自由使用和修改源代码。

MySQL 在全球有大规模的贡献者和爱好者社区,为使用这种数据库系统带来了许多额外的长期优势。例如,MySQL 社区一直关注安全问题和错误修复,提高了软件的整体弹性。MySQL 的用户群、活动、论坛和邮寄名单组成了一个内建的教育和支持网络。

3、针对“PostgreSQL做开发会不会引来性能不佳和后期维护困难的问题?PostgreSQL的前景如何?全球有没有非常成功的应用案例?”

1)PostgreSQL已经开发了很多年,仍然是一个高度可靠的开源数据库平台。它在同一个数据库系统中提供关系结构和面向对象的结构,这意味着它可以与您在网站或移动应用程序上运行的任何类型的代码库集成。

PostgreSQL的最新版本包括对复杂存储过程的支持,它允许您在数据库表中实际编写脚本和代码。可以将这些过程设置为从各种触发器运行,同时保持应用程序的稳定性。

不利的一面是,PostgreSQL需要大量的处理能力才能运行,并且可能比其他开源解决方案提供更差的性能。此外, PostgreSQL虽然有一个专门的用户和开发人员社区,但它提供的支持选项是有限的

2)PostgreSQL 常见使用案例

Ø 通用型 OLTP 数据库

初创公司和大型企业等使用 PostgreSQL 作为主数据存储来支持其 Internet 规模的应用程序、解决方案和产品。

Ø 地理空间数据库

与 PostGIS 扩展结合使用时,PostgreSQL 支持地理对象,可用作基于位置的服务和地理信息系统 (GIS) 的地理空间数据存储。

Ø 联合中心数据库

PostgreSQL 的外部数据封装器和 JSON 支持允许它与其他数据存储(包括 NoSQL 类型)关联,并用作混合数据库系统的联合中心。

Ø LAPP 开源堆栈

PostgreSQL 可将动态网络和应用程序作为 LAMP 堆栈(LAPP 代表“Linux、Apache、PostgreSQL、PHP、Python 和 Perl”)的一个主要替代品的一部分运行。

欢迎大家关注我一起交流啊~

  • 打赏
  • 举报
回复
相关推荐
发帖
Gauss松鼠会
加入

1.3w+

社区成员

汇集数据库的爱好者和关注者,大家共同学习、探索、分享数据库前沿知识和技术,像松鼠一样剥开科学的坚果;交流Gauss及其他数据库的使用心得和经验,互助解决问题,共建数据库技术交流圈。
帖子事件
创建了帖子
2022-01-14 18:40
社区公告

欢迎大家同时关注Gauss松鼠会专家酷哥。

https://www.zhihu.com/people/ku-ge-78-98