PostgreSQL具有更多的企业级数据库的特性,但国内开源数据库用MySQL的更加广泛的原因:1、MySQL早期市场占有率高;2、MySQL社区资源丰富等。MySQL早期市场占有率高是指MySQL早期在互联网行业的应用非常广泛。
一、PostgreSQL具有更多的企业级数据库的特性,但国内开源数据库用MySQL的更加广泛的原因
1、MySQL早期市场占有率高
MySQL早期在互联网行业的应用非常广泛,而且 MySQL 的开发和应用社区比较活跃,因此在国内互联网企业中得到了广泛的推广和应用。这些企业仍然继续使用MySQL。
2、MySQL社区资源丰富
MySQL的社区开发资源非常丰富,有大量的优异开源软件和工具,可以提高开发效率和数据处理性能,同时也便于开发者的学习和掌握。
3、MySQL易于学习和使用
MySQL的语法简单易懂,入门门槛低,即使没有相关经验的开发者也可以快速上手。这对于小型企业或创业团队来说非常重要,因为他们需要快速开发和迭代。
4、单机性能较好
MySQL在单机上的性能表现非常出色,对于一些小型应用程序来说完全够用。而PostgreSQL在单机上的性能要比 MySQL 差一些。
二、PostgreSQL概述
1、简介
PostgreSQL 是一款高级的企业级开源关系数据库,支持 SQL(关系型)和 JSON(非关系型)查询。它是一个高度稳定的数据库管理系统,依托 20 多年的社区发展,造就了其高水平的故障恢复能力、完整性和正确性。PostgreSQL 可用作很多 Web、移动、地理空间和分析应用程序的主要数据存储或数据仓库。最新主要版本为 PostgreSQL 12。
PostgreSQL 在支持高级数据类型方面战绩颇丰,并且支持一定水平的性能优化(常见于 Oracle 和 SQL Server 等对手型商业数据库)。AWS 通过 Amazon Relational Database Service (RDS) 的完全托管数据库服务为 PostgreSQL 提供支持,并且使用 PostgreSQL 构建了兼容 PostgreSQL 的 Amazon Aurora。
2、发展历程
1986 年,PostgreSQL 项目在美国加州大学伯克利分校教授 Michael Stonebreaker 指导下开始启动。该项目最初名为“POSTGRES”,参考了同样在伯克利开发的旧 Ingres 数据库。POSTGRES 旨在添加最少的功能来为多个数据库类型提供完全支持。1996 年,为了体现该项目对 SQL 查询语言的支持,它被更名为“PostgreSQL”(但 PostgreSQL 通常仍被简称为“Postgres”)。此免费开源数据库项目有一个专属的多元化贡献者社区 (PostgreSQL Global Development Group) 持续定期执行它的主要和次要版本发布。
3、优点
- 丰富的功能和扩展:PostgreSQL 拥有强劲的功能集,其中包括多版本并发控制 (MVCC)、时点恢复、细粒度访问控制、表空间、异步复制、嵌套事务、联机/热备份、完善的查询规划器/优化器以及预写式日志。它支持国际字符集、多字节字符编码和 Unicode,并且在排序、区分大小写和格式设置等方面具备区域感知功能。PostgreSQL 在可管理的数据量和可容纳的并发用户量方面均能够高度扩展。
- 可靠性和标准合规性:PostgreSQL 的预写式日志功能使其成为具备高容错能力的数据库。其庞大的开源贡献者群为其提供了内置社区支持网络。PostgreSQL 可与 ACID 兼容,并且对外键、连接、视图、触发器和存储的程序提供多种语言的全套支持。它包括大多数 SQL:2008 数据类型,包括 INTEGER、NUMERIC、BOOLEAN、CHAR、VARCHAR、DATE、INTERVAL 和 TIMESTAMP。此外,它还支持存储二进制大对象,包括图片、语音或视频。
- 开源许可:PostgreSQL 源代码可通过开源许可证获取,这让您能够根据需要自由使用、修改和实施它,同时无任何费用。PostgreSQL 不会产生许可费用,这消除了过度部署的风险。PostgreSQL 专属的贡献者和爱好者社区会定期查找错误并修复,致力于确保数据库系统的整体安全性。
三、MySQL概述
1、简介
MySQL是一个小型的开源的关系型数据库管理系统,与其他大型数据库管理系统例如Oracle、DB2、SQL Server等相比,MySQL规模小,功能有限,但是它体积小、速度快、成本低,且它提供的功能对稍微复杂的应用已经够用,这些特性使得MySQL成为世界上较受欢迎的开放源代码数据库。
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言——结构化查询语言(SQL)进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容较好的选择。
2、应用环境
与其他的大型数据库例如 Oracle、DB2、SQL Server等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本。
Linux作为操作系统,Apache 或Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。
3、应用架构
- 单点(Single),适合小规模应用
- 复制(Replication),适合中小规模应用
- 集群(Cluster),适合大规模应用
延伸阅读1:MySQL 5.7和早期版本的区别
- 3倍更快的性能
- InnoDB 相关改进
- 新的优化器
- 多源复制
- GIS 相关改进
- 原生 JSON 支持