广告
返回顶部
首页 > 资讯 > 数据库 >pg数据库和mysql数据库有什么区别
  • 143
分享到

pg数据库和mysql数据库有什么区别

2024-04-02 19:04:59 143人浏览 八月长安
摘要

pg数据库和Mysql数据库有什么区别?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!区别:1、mysql倾向于使用者的角度

pg数据库Mysql数据库有什么区别?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

区别:1、mysql倾向于使用者的角度;pg数据库倾向于理论角度。2、Mysql一般会将数据合法性验证交给客户;pg数据库在合法性难方面做得比较严格。3、在SQL的标准实现上,pg数据库要比MySQL完善,而且功能实现比较严谨。

pg数据库和mysql数据库有什么区别

MySQL

MySQL相对来说比较年轻,首度出现在1994年。它声称自己是最流行的开源数据库。MySQL就是LAMP(用于web开发的软件包,包括 linux、Apache及Perl/PHP/python)中的M。构建在LAMP栈之上的大多数应用都会使用MySQL,包括那些知名的应用,如 WordPress、Drupal、Zend及phpBB等。

一开始,MySQL的设计目标是成为一个快速的WEB服务器后端,使用快速的索引序列访问方法(ISAM),不支持ACID。经过早期快速的发展之 后,MySQL开始支持更多的存储引擎,并通过InnoDB引擎实现了ACID。MySQL还支持其他存储引擎,提供了临时表的功能(使用MEMORY存 储引擎),通过MyISAM引擎实现了高速读的数据库,此外还有其他的核心存储引擎与第三方引擎。

MySQL的文档非常丰富,有很多质量不错的免费参考手册、图书与在线文档,还有来自于oracle和第三方厂商的培训与支持。

MySQL近几年经历了所有权的变更和一些颇具戏剧性的事件。它最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版 本:Standard、Enterprise、Classic、Cluster、Embedded与CommUnity。其中有一些是免费下载的,另外一 些则是收费的。其核心代码基于GPL许可,对于那些不想使用GPL许可的开发者与厂商来说还有商业许可可供使用。

现在,基于最初的MySQL代码还有更多的数据库可供选择,因为几个核心的MySQL开发者已经发布了MySQL分支。最初的MySQL创建者之一 Michael “Monty” Widenius貌似后悔将MySQL卖给了Sun公司,于是又开发了他自己的MySQL分支MariaDB,它是免费的,基于GPL许可。知名的 MySQL开发者Brian Aker所创建的分支Drizzle对其进行了大量的改写,特别针对多CPU、云、网络应用与高并发进行了优化

PostgreSQL

postgresql标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。它拥有很长的历史,最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。

PostgreSQL是完全由社区驱动的开源项目,由全世界超过1000名贡献者所维护。它提供了单个完整功能的版本,而不像MySQL那样提供了 多个不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声 明即可。

可靠性是PostgreSQL的最高优先级。它以坚如磐石的品质和良好的工程化而闻名,支持高事务、任务关键型应用。PostgreSQL的文档非 常精良,提供了大量免费的在线手册,还针对旧版本提供了归档的参考手册。PostgreSQL的社区支持是非常棒的,还有来自于独立厂商的商业支持。

数据一致性与完整性也是PostgreSQL的高优先级特性。PostgreSQL是完全支持ACID特性的,它对于数据库访问提供了强大的安全性 保证,充分利用了企业安全工具,如Kerberos与OpenSSL等。你可以定义自己的检查,根据自己的业务规则确保数据质量。在众多的管理特性 中,point-in-time recovery(PITR)是非常棒的特性,这是个灵活的高可用特性,提供了诸如针对失败恢复创建热备份以及快照与恢复的能力。但这并不是 PostgreSQL的全部,项目还提供了几个方法来管理PostgreSQL以实现高可用、负载均衡与复制等,这样你就可以使用适合自己特定需求的功能 了。

平台

MySQL与PostgreSQL都出现在一些高流量的Web站点上:

MySQL:Slashdot、Twitter、Facebook与Wikipedia

PostgreSQL:Yahoo使用了一个修改的PostgreSQL数据库来处理每天数以亿计的事件,还有Reddit和Disqus

MySQL与PostgreSQL都能运行在多个操作系统上,如Linux、Unix、Mac OS X与windows。他们都是开源、免费的,因此测试他们时的唯一代价就是你的时间与硬件。他们都很灵活且具有可伸缩性,可用在小型系统和大型分布式系统 上。MySQL在一个领域上要比PostgreSQL更进一步,那就是它的触角延伸到了嵌入式领域,这是通过libmysqld实现的。 PostgreSQL不支持嵌入式应用,依然坚守在传统的客户端/服务器架构上。

MySQL通常被认为是针对网站与应用的快速数据库后端,能够进行快速的读取和大量的查询操作,不过在复杂特性与数据完整性检查方面不太尽如人意。

PostgreSQL是针对事务型企业应用的严肃、功能完善的数据库,支持强ACID特性和很多数据完整性检查。他们二者都在某些任务上具有很快的速 度,MySQL不同存储引擎的行为有较大差别。MyISAM引擎是最快的,因为它只执行很少的数据完整性检查,适合于后端读操作较多的站点,不过对于包含 敏感数据的读/写数据库来说就是个灾难了,因为MyISAM表最终可能会损坏。MySQL提供了修复MySQL表的工具,不过对于敏感数据来说,支持 ACID特性的InnoDB则是个更好的选择。

与之相反,PostgreSQL则是个只有单一存储引擎的完全集成的数据库。你可以通过调整postgresql.conf文件的参数来改进性能,也可以调整查询与事务。PostgreSQL文档对于性能调优提供了非常详尽的介绍。

MySQL与PostgreSQL都是高可配置的,并且可以针对不同的任务进行相应的优化。他们都支持通过扩展来添加额外的功能。

一个常见的误解就是MySQL要比PostgreSQL更容易学习。关系数据库系统都是非常复杂的,这两个数据库的学习曲线其实是差不多的。

标准兼容性

PostgreSQL旨在实现SQL兼容性(当前标准是ANSI-SQL:2008)。MySQL则兼容大部分SQL,不过还有自己的扩展,可以支 持NoSQL特性,这在参考手册中都有介绍。每种方式都有优缺点。兼容标准会让数据库管理员、数据库开发者与应用开发者更舒服一些,因为这意味着他们只需 学习一套标准、一套特性和命令即可。这会节省时间,提升效率,也不会被定在特定的厂商上。

支持使用非标准的自定义功能的人们认为这样可以快速采用新的特性,而不必等待标准进程完成。ANSI/ISO标准在不断演化,因此标准兼容性也是个 变化的目标:知名的关系型数据库Microsoft SQL Server、Oracle与IBM DB2也只是部分兼容于标准。

MySQL与PostgreSQL(pg数据库)的区别

MySQL是应用开发者创建出来的DBMS;而PostgreSQL是由数据库开发者创建出来的DBMS 。

换句话说,MySQL倾向于使用者的角度,回答的问题是 “你想解决的是什么问题”;而PostgreSQL倾向于理论角度,回答的问题是 “数据库应该如何来解决问题” 。

MySQL一般会将数据合法性验证交给客户;PostgreSQL在合法性难方面做得比较严格。比如MySQL里插入 “2012-02-30” 这个时间时,会成功,但结果会是 “0000-00-00”;PostgreSQL不允许插入此值。

通常,PostgreSQL 被认为特性丰富,而MySQL被认为速度更快。但这个观点基本是在 MySQL 4.x / PostgreSQL 7.x 的事情,现在情况已经变了,PostgreSQL 在9.x版本速度上有了很大的改进,而MySQL特性也在增加。

在架构上,MySQL分为两层:上层的SQL层和几个存储引擎(比如InnoDB,MyISAM)。PostgreSQL 只有一个存储引擎提供这两个功能。

这两个数据库系统都可以针对应用的情境被优化、定制,精确的说哪个性能更好很难。MySQL项目一开始焦点就在速度上,而PostgreSQL一开始焦点在特性和规范标准上。

PostgreSQL相对于MySQL的优势

1、在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨;

2、存储过程的功能支持要比MySQL好,具备本地缓存执行计划的能力;

3、对表连接支持较完整,优化器的功能较完整,支持的索引类型很多,复杂查询能力较强;

4、PG主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。

5、PG的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。

6、MySQL的存储引擎插件化机制,存在锁机制复杂影响并发的问题,而PG不存在。

MySQL相对于PG的优势:

1、innodb的基于回滚段实现的mvcC机制,相对PG新老数据一起存放的基于XID的MVCC机制,是占优的。新老数据一起存放,需要定时触 发VACUUM,会带来多余的io和数据库对象加锁开销,引起数据库整体的并发能力下降。而且VACUUM清理不及时,还可能会引发数据膨胀;

2、MySQL采用索引组织表,这种存储方式非常适合基于主键匹配的查询、删改操作,但是对表结构设计存在约束;

3、MySQL的优化器较简单,系统表、运算符、数据类型的实现都很精简,非常适合简单的查询操作;

4、MySQL分区表的实现要优于PG的基于继承表的分区实现,主要体现在分区个数达到上千上万后的处理性能差异较大。

5、MySQL的存储引擎插件化机制,使得它的应用场景更加广泛,比如除了innodb适合事务处理场景外,myisam适合静态数据的查询场景。

感谢各位的阅读!看完上述内容,你们对pg数据库和mysql数据库有什么区别大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: pg数据库和mysql数据库有什么区别

本文链接: https://www.lsjlt.com/news/50544.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • pg数据库和mysql数据库有什么区别
    pg数据库和mysql数据库有什么区别?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!区别:1、MySQL倾向于使用者的角度...
    99+
    2022-10-18
  • 数据库char和varchar有什么区别
    数据库char和varchar有什么区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。数据库char和varchar的区别:1...
    99+
    2022-10-18
  • mongodb和Redis数据库有什么区别
    mongodb和Redis数据库的区别有:1、Redis比mongodb快;2、mongodb能够的数据量比Redis多;3、Redis具有键值存储,而mongodb具有文档类型存储;4、Redis编码比较复杂,而mongodb操作相对更加...
    99+
    2022-10-05
  • 数据仓库和数据库有哪些区别
    这篇文章将为大家详细讲解有关数据仓库和数据库有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据仓库和数据库的区别:1、数据库存储的是原始数据,没经过任何加工;而...
    99+
    2022-10-18
  • php和java的数据库有什么区别
    本教程操作环境:windows7系统、PHP7.1&&java8版、DELL G3电脑php是什么?PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。P...
    99+
    2016-09-14
    php java 数据库
  • SQL Server和MySQL数据库的区别是什么
    SQL Server和MySQL数据库的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 1,优点分析:MYSQL短小精悍,...
    99+
    2022-10-18
  • 关系型数据库和非关系型数据库有什么区别
    关系型数据库和非关系型数据库有什么区别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。非关系型数据库(nosql)  非关系型数据库也称之为...
    99+
    2022-10-18
  • 云数据库和自建数据库的区别是什么
    本篇内容主要讲解“云数据库和自建数据库的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“云数据库和自建数据库的区别是什么”吧!云数据库是指部署在云端的数...
    99+
    2022-10-18
  • 云数据库和本地数据库有哪些区别
    云数据库和本地数据库的区别有:1、云数据库计算性能高,本地数据库需要云服务器的云盘规划架构,实现集群版的难度较高;2、云数据库提供白...
    99+
    2023-02-08
    云数据库和本地数据库 云数据库 本地数据库
  • MySQL数据库中主键和唯一键有什么区别
    小编给大家分享一下MySQL数据库中主键和唯一键有什么区别,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!什么是主键?主键是表中唯一标识该表中每个元组(行)的列。主键对表实施完整性约束。表中只允...
    99+
    2022-10-18
  • 数据库镜像和复制有什么区别
    这篇文章主要介绍数据库镜像和复制有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是数据库镜像?数据库镜像是指创建和维护数据库的冗余副本的技术,镜像副本始终与主体数据库同步...
    99+
    2022-10-18
  • mysql数据库引擎 MyISAM和 InnoDB区别
    1、 存储结构MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名...
    99+
    2022-10-18
  • MySQL 数据库中MyISAM 和 InnoDB 的区别
    首先要明白,在MySQL数据库忠中的存储引擎是基于表的,而不是基于数据库的。讲述两者区别:    InnoDB 存储引擎,主要面向 OLTP(Online Trans...
    99+
    2022-10-18
  • 云服务器和云数据库有什么区别
    云服务器和云数据库是两种常用的云计算服务,它们的区别如下: 服务类型: 云服务器:通常是一台物理服务器,它运行在一个公共的云计算平台上,提供高可靠性、高弹性和高可扩展性的服务。 云数据库:通常是一个数据库,它存储着大量的关系型数据,可...
    99+
    2023-10-26
    有什么区别 服务器 数据库
  • memcache数据库和redis数据库的区别(理论)
        在了解了memcache集群和redis集群后,我产生了一些问题:    redis集群支持的存储类型多于memcache集群;redis集群支持数据的持久化,更能很好的保护数据完整性;    那么...
    99+
    2022-10-18
  • 达梦数据库和oracle数据的区别有哪些
    这篇文章主要讲解了“达梦数据库和oracle数据的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“达梦数据库和oracle数据的区别有哪些”吧!1、...
    99+
    2022-10-18
  • 云服务器和云数据库有什么区别呢
    云服务器和云数据库是两种不同类型的服务器,它们之间有以下区别: 基础架构:云服务器是一种虚拟化技术,通常由一个专门的服务器虚拟机和其他软件组成。它使用虚拟技术将多个计算资源(例如CPU、内存、磁盘和网络)整合在一起,以提供按需弹性的服务...
    99+
    2023-10-26
    有什么区别 服务器 数据库
  • mysql数据库中utf8mb4 unicode ci和utf8 general ci什么区别?
    utf8mb4是4个字节。utf8是3个字节。utf8mb4兼容性更好,占用空间更大。 主要从排序准确性和性能两方面看: 准确性utf8mb4_unicode_ci 是基于标准的Unicode来排序和比较,能够在各种语言之间精...
    99+
    2014-10-18
    mysql数据库中utf8mb4 unicode ci和utf8 general ci什么区别?
  • Oracle的专用数据库和共享数据库区别
    专用服务器进程(Dedicated server)对于专用服务器配置,在登录时,Oracle总会创建一个新的进程,这个服务器进程会在会话生存期中专门这个连接服务。对于每个会话,都会出现一个新的专用服务器,会...
    99+
    2022-10-18
  • 关系型数据库和非关系型数据库的区别是什么
    这篇文章主要介绍了关系型数据库和非关系型数据库的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。区别:关系型数据天然就是表格式的,因此存...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作