PostgreSQL与MySQL的对比与选择
作者:波罗
前言
PostgreSQL:PostgreSQL比MySQL提供更多的功能和可扩展性。PostgreSQL旨在从一开始就提供MVCC(并发交易)和ACID合规性。它与最广泛的NoSQL格式兼容,并以管理大型数据集上复杂分析过程的最佳解决方案而知名,它特别擅长处理并发读写操作。目前已经是替换Oracle的开源数据库最佳选择 。
MySQL:MySQL的功能少于PostgreSQL,但这使MySQL可以专注于系统稳定性和处理速度(特别是对于只读查询)。MySQL以提供最佳网站解决方案和进行在线交易而著称,同时与各种可插拔数据存储引擎兼容。
功能、特性对比
PostgreSQL是一个高度可扩展的数据库管理系统,作为对象关系数据库管理系统(ORDBMS),PostgreSQL具有对JSON,XML,带有HSTORE的键-值对的本机NoSQL支持,并且它允许对JSON数据建立索引以加快访问速度。这使得PostgreSQL在处理不适合关系格式的数据时成为一种流行的选择。
PostgreSQL是最稳定,功能最丰富的开源RDBMS之一。在实施复杂的查询时,它的性能很好。将其它数据库转换为PostgreSQL也很方便。由于它无处不在,因此您可以找到在线社区中可能遇到的任何问题的解决方案。PostgreSQL的版本迭代为用户提供了数量惊人的功能,更不用说其它开源项目了。而且几乎在每种情况下,当前的功能只是开发人员将继续遵循的长期路线图的一部分……
以下是PostgreSQL功能的完整概述:
1.免费和开源:PostgreSQL具有自由的开源许可证,可让您按自己的意愿自由地使用,修改和分发PostgreSQL。
2.ORDBMS,而不是RDBMS:PostgreSQL是一个对象关系数据库管理系统PostgreSQL,它可以管理面向对象和关系数据。因此,您的数据不必与传统的关系结构匹配。
3.可使用多种不同的语言进行扩展和自定义:用户可以通过开发自定义插件来扩展PostgreSQL以适应他们的需求。用户拥有使用SQL,C,C ++,Go,pgSQL,Python,Perl和Tcl等各种语言为PostgreSQL编写自定义函数的自由。此外,开源项目提供了Java,Lua,R等支持语言。
4.MVCC功能:PostgreSQL是第一个提供多版本并发控制(MVCC)功能的数据库管理系统。
5.成熟,响应迅速的社区:PostgreSQL拥有大量的志愿者和开发人员社区(PostgreSQL全球开发小组),他们维护和更新PostgreSQL。相同的社区向其他PostgreSQL用户提供支持。也提供付费的第三方支持。
6.三次年度最佳数据库奖得主:PostgreSQL分别在2017年、2018年和2020年获得了DB-Engines年度数据库奖。
7.SQL ISO / IEC 9075标准: PostgreSQL满足完全符合该标准所需的164个必需功能中的150个。
8.用户定义的类型:用户可以扩展PostgreSQL以支持新的数据类型。您可以定义新的基本类型,这些基本类型是在SQL语言级别以下定义的数据类型。要创建新的基本类型,必须实现一些功能以使用低级语言(例如C)对该类型进行操作。
9.不断增加的功能和不断增强的功能:动态的数据压缩可提供强大的性能指标,从而减少了读取所需的IO工作,并且供客户端应用程序使用的异步API可以提高性能。
10.数据安全访问功能:PostgreSQL使用访问控制列表ACL (access control list)对数据库、模式和表的用户权限进行控制。它还支持对静止数据进行全磁盘、基于文件、表级、列级和实例级加密。pgcrypto软件是一个流行的附加包,包含在PostgreSQL源代码发行版中。当然,对于正在运行的数据,还提供了对SSL连接的原生支持,用于客户机/服务器通信的加密,以实现健壮的安全性。
11.迁移保护措施:如果对一个人的数据库进行修改时出现故障,则整个修改都将回滚到原始点(开始的地方)。在MySQL中,它会以静默方式失败,并且有时直到部署后才会出现该错误。
12.免费的PostgreSQL管理工具:用户与PostgreSQL数据库交互的最常见方式之一是通过pgAdmin。
MySQL是关系数据库管理系统(RDBMS),在速度,可靠性和通用功能方面享有盛誉。它也是全球最受欢迎的数据库,是用于动态网站和Web应用程序的最通用的数据库。目前有39%的开发人员在其项目中使用MySQL,从而使其成为最流行的DBMS。这种流行主要归因于以下几个因素:
1.与其他DBMS系统相比,MySQL易于使用和学习。
2.互联网上一些最大的内容管理平台(如WordPress,Joomla和Drupal)使用MySQL进行数据管理;
3.许多云服务提供商还提供廉价的MySQL托管;
4.它表示LAMP堆栈(Linux,Apache HTTP Server,MySQL,PHP)中的“ M”,因此可供Web应用程序开发人员使用。
下面是MySQL特性的完整概述:
1.免费和开放源代码:MySQL是一种开放源代码软件,任何人都可以根据GNU通用公共许可证免费使用。
2.Oracle拥有并维护:自2010年收购Sun Microsystems以来,Oracle拥有并维护MySQL。
3.定期更新:MySQL开发人员会定期通过所需的安全升级和新功能来更新MySQL。MySQL 8.0.24于2021年4月20日发布。
4.成熟的响应社区:MySQL拥有一个由响应迅速的志愿者组成的庞大社区,这些志愿者可以帮助用户进行故障排除和解决问题。
5.MySQL为应用程序开发人员提供了全面的支持。例如,存储过程,触发器,函数,视图,游标,ANSI标准SQL等。对于嵌入式应用程序,可以使用插件库在大多数应用程序中嵌入MySQL数据库支持。MySQL还提供了连接器和驱动程序(ODBC,JDBC等)。几乎每种范例和语言都支持MySQL,反之亦然。
6.MySQL以高速事务处理而闻名,它利用诸如缓存和数据库索引之类的技术来加速SELECT查询语句对大数据负载的性能。为了提高性能,MySQL 8在性能模式中包含了索引,以加快数据检索的速度。
7.可靠性和稳定性的声誉:该数据库管理员将MySQL描述为一个稳定可靠的系统,正如该用户指出的那样:“ … MySQL经过长期的测试。任何问题都是已知问题,我们在生产中几乎没有任何问题。因此它非常稳定。”
8.符合ACID:对于使用InnoDB和NDB Cluster存储引擎的用户,MySQL符合ACID。
9.通过InnoDB进行的多版本并发控制(MVCC):MySQL在使用InnoDB存储引擎时提供MVCC。MVCC是“一种数据库设计理论,它使关系数据库能够支持并发,或更简单地说,是多用户访问数据库中的公共数据。”
数据库管理系统的选型通常会参考诸多指标,以下根据DBMS主要功能指标整理了一张表格,进行特性的概要对比,可供选型参考:
如何选择
PostgreSQL和MySQL比较,它更加庞大一些,某种意义上它为替代Oracle而存在的,毕竟使用如此稳定、功能强大的数据库是免费的。当您想要功能丰富,可扩展的数据库来有效管理大型数据集上的复杂读写操作时,PostgreSQL通常是最佳选择。并且,无论是在SQL标准支持度、Oracle兼容性、非关系数据支持上都有着诸多优势。
MySQL更适合基于Web的应用程序,较小的数据集和高速只读查询。然并卵, MySQL被Oracle收购之后, Oracle正在逐步的封闭MySQL,功能虽不断变强大,总容易被商业化;其开源许可GPL也在不断变化,不知道是开始没想好开源精神应该如何传承还是后来商业组织有了新的想法,使其与开源精神渐行渐远。
纵观开源关系数据库的发展,PostgreSQL主版本稳定迭代,MySQL逐渐走向分化。鉴于此,开发者们会越来越多的选择使用PostgreSQL作为项目的后端数据库。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
【参赛作品7】PostgreSQL/openGauss数据库易犯的十大错误
总结十点PostgreSQL/openGauss数据库中容易犯的错误。 1.同时设置日志行前缀和csvlog格式 比较常见大家同时配置下面这两个参数 log_line_prefix = '%m %u %d %p' log_destination='csvlog' %m是带毫秒的时间戳 %u是用户名 %d是数据库名 %p是进程ID 然后当我们配置为csvlog日志时,日志行的内容项是固定的,所以当我们需要配置日志前缀,精简日志行的内容项时,log_destination不能配置为csvlog。下面是正确的配置: log_destination='stderr' log_line_prefix = '%m %u %d %p' 2.不符合预期的日志轮换策略 日志轮换策略可以通过log_rotation_size参数按日志文件大小控制或者通过log_rotation_age参数按时间控制,但下面这四个参数需要合理组合使用。 log_filename log_truncate_on_rotation log_rotation_age log_rotation_size 方案一:每天生成一个新的日...
-
下一篇
数据库界的四位图灵奖得主(二):解决科学问题才是硬道理
作者:波罗 前言 原拟名《梅花香自苦寒来,关系库从磨难出》,以突出E.F.Codd经历的困难,近日连开两个973项目交流会,换场期间,有朋友建议把最后的小标题升为大标题,以突出其贡献,也合今天973 基调;此外,第一次在北京机场发博文,匆忙之中,如有错漏,请及时提醒。 功过从何数 1981年,58岁的E.F.Cood 获得图灵奖,这是数据库界的第二枚(也是久违了的)图灵奖。从1970年提出关系数据库到获奖,奋斗十一年,终成正果。如今,斯人已驾鹤西去,回望其成功之路,不禁想起了电视剧《西游记》取经成功后的插曲《青青菩提树》: 几多朝朝暮暮,漫漫云烟无数,….. 历经坎坷终无悔,未教年华虚度….. 面对大千世界, 功过从何数? …… 好,现在就来数一数。 网上传统传记太多,这里想写一篇不很传统的、轻松一点的描述,须从数据库的型与值说起。 数据库的型与值 模型和模特儿在英语中是同一个单词model,其实,译音又译意的“模特儿”既通俗、又朴素,也最直白地说清楚了高雅的“模型”在数据库中的的含义,模型就是骨架。且看图: 上图中,左边的模特, 抽象一点,不过八两铁丝,一些手艺;披上了衣服后,加上想...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,8上快速安装Gitea,搭建Git服务器