PostgreSQL与MySQL相比,优势何在?

1

PostgreSQL类似于Oracle的多进程框架,可以支持高并发的应用场景。

如果把Oracle DBA转到PostgreSQL数据库上是比较容易的,毕竟PostgreSQL数据库与Oracle数据库很相似。

PostgreSQL几乎支持所有的SQL标准,支持类型相当丰富。PostgreSQL数据库的源代码要比MySQL数据库的源代码更容易读懂,如果团队的C语言能力比较强的话,就可以在PostgreSQL数据库上做开发,比方说实现类似greenplum的系统,这样也能与现在的分布式趋势接轨。

为了说明PostgreSQL的功能,下面从“从Oracle迁移到Mysql之前必须知道的50件事”简要对比一下PostgreSQL数据库与MySQL数据库之间的差异。

从Oracle迁移到Mysql会面对的50件难事

1、对子查询的优化表现不佳。(PostgreSQL可解决)

2、 对复杂查询的处理较弱。(PostgreSQL可解决)

2

PostgreSQL不是Oracle公司的,这是相对于MySQL最大的优势,没有之一!

MySQL是目前最受欢迎的开源数据库,PostgreSQL则是我认为最先进的开源数据库。MySQL是C/C++混合开发,PostgreSQL则是完全的C语言开发,这是在技术方面的差异,接下来我详细列一下PostgreSQL相对于MySQL优势,当然其实这些也都能招到,我就列举几个比较关键的优势。

PostgreSQL稳定性非常强,InnoDB即使是在断电这种场景下,PostgreSQL也是相当稳定的,这个MySQL用户应该是深有体会的,很多估计都经历过服务器级别的数据丢失。

MySQL是单存储引擎,PostgreSQL是多存储引擎,包括InnoDB、MyISAM等。

删除临时表的时候,PostgreSQL语句没有TEMP、TEMPORARY关键字,DROP TABLE通过数据库连接的排列被删除。MySQL支持TEMP、TEMPORARY关键字,DROP TABLE语句只允许删除临时表,要手动删除。PostgreSQL支持CASCADE选择删除表的依赖对象,PostgreSQL的TRUNCATE TABLE支持功能更多。MySQL TRUNCATE TABLE不支持CASCADE食物安全,数据删除之后就没办法回滚了。

3

很高兴能够看到和这个问题!

选择适合企业的数据库需要相当的规划,因为未来的选择将是困难的,而且成本很高。 因此,必须在第一时间做出正确的选择。 MySQL和PostgreSQL是两个最流行的开源数据库,这往往是数据库管理员托管的最后两个数据库。 下面档将对两种开源数据库进行分析和比较,帮助您选择符合您操作需求的数据库。

PostgreSQL与MySQL相比,优势何在?

可靠性是PostgreSQL的主要目标之一。 我们都知道PostgreSQL的功能很强大,而且基础很好,能够支持任务和关键任务。 PostgreSQL提供高质量的文档服务,包括完整的免费在线手册和旧版手册的存档。 社区支持非常有效,独立公司也提供了商业支持。 Mysql和pgsql出现在一些高流量的网站上,可用于大型分布式系统,所有支持服务,支持有效性指数。 Mysql支持嵌入式应用,pgsql仍然支持传统的B/S架构。 MySQL可以产生快速的读取访问和各种查询,但具有复杂的属性和数据完整性检查,并不完全令人满意:pgsql是业务类的,针对MyISAM硬盘上的mysql开发的,因为很少进行数据完整性检查,所以对于敏感数据、快节奏、高读写要求的数据,ACID支持InnoDB功能是最好的选择,而且pgsql是一个完全集成的数据库,只有一个存储引擎。

确保数据的一致性和完整性也是PostgreSQL的重中之重,PostgreSQL数据库完全符合ACID原则(原子性、一致性、隔离性和耐久性)。

PostgreSQL对数据库的访问提供了强大的安全控制,不仅使用了Kerberos和OpenSSL等先进的企业安全工具,还根据业务需求定制了认证方法,以确保数据质量。 数据库管理员最钟爱的功能是时间恢(PITR),它提供了灵活性和高可用性,允许你快速创建故障转移服务器,在特定时间快速捕获和恢复。 但这还不是全部。 该项目提供了各种PostgreSQL管理技术,使PostgreSQL能够提供高可用性、负载均衡和同步,这样你就可以使用这些功能来满足你的特定需求。 Pgsql有非常强大的sql编程功能,有非常丰富的统计功能和统计语法,可以多语言编写过程,r的支持也非常好,这个mysql会从mysql的数据中心删除和处理,但是数据分析主要是Hadoop+PGSQL。当我们使PostgreSQL对数据库时,看的见的文件仅仅是文件吗?

4

一、 PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。
二、任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显出现一个波峰后下滑(5.5版本之后,在企业级版本中有个插件可以改善很多,不过需要付费)。
三、PG 多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap 等数据类型,相比之下mysql就差很多,instagram就是因为PG的空间数据库扩展POSTGIS远远强于MYSQL的my spatial而采用PGSQL的。
四、PG 的“无锁定”特性非常突出,甚至包括 vacuum 这样的整理数据空间的操作,这个和PGSQL的MVCC实现有关系。
五、PG 的可以使用函数和条件索引,这使得PG数据库的调优非常灵活,mysql就没有这个功能,条件索引在web应用中很重要。
六、PG有极其强悍的 SQL 编程能力(9.x 图灵完备,支持递归!),有非常丰富的统计函数和统计语法支持,比如分析函数(ORACLE的叫法,PG里叫window函数),还可以用多种语言来写存储过程,对于R的支持也很好。这一点上MYSQL就差的很远,很多分析功能都不支持,腾讯内部数据存储主要是MYSQL,但是数据分析主要是HADOOP+PGSQL。
七、PG 的有多种集群架构可以选择,plproxy 可以支持语句级的镜像或分片,slony 可以进行字段级的同步设置,standby 可以构建WAL文件级或流式的读写分离集群,同步频率和集群策略调整方便,操作非常简单。
八、一般关系型数据库的字符串有限定长度8k左右,无限长 TEXT 类型的功能受限,只能作为外部大数据访问。而 PG 的 TEXT 类型可以直接访问,SQL语法内置正则表达式,可以索引,还可以全文检索,或使用xml xpath。用PG的话,文档数据库都可以省了。
九,对于WEB应用来说,复制的特性很重要,mysql到现在也是异步复制,pgsql可以做到同步,异步,半同步复制。还有mysql的同步是基于binlog复制,类似oracle golden gate,是基于stream的复制,做到同步很困难,这种方式更加适合异地复制,pgsql的复制基于wal,可以做到同步复制。同时,pgsql还提供stream复制。
十,pgsql对于numa架构的支持比mysql强一些,比MYSQL对于读的性能更好一些,pgsql提交可以完全异步,而mysql的内存表不够实用(因为表锁的原因)
最后说一下我感觉 PG 不如 MySQL 的地方。
第一,MySQL有一些实用的运维支持,如 slow-query.log ,这个pg肯定可以定制出来,但是如果可以配置使用就更好了。
第二是mysql的innodb引擎,可以充分优化利用系统所有内存,超大内存下PG对内存使用的不那么充分,
第三点,MySQL的复制可以用多级从库,但是在9.2之前,PGSQL不能用从库带从库。
第四点,从测试结果上看,mysql 5.5的性能提升很大,单机性能强于pgsql,5.6应该会强更多.
第五点,对于web应用来说,mysql 5.6 的内置MC API功能很好用,PGSQL差一些。
另外一些:
pgsql和mysql都是背后有商业公司,而且都不是一个公司。大部分开发者,都是拿工资的。
说mysql的执行速度比pgsql快很多是不对的,速度接近,而且很多时候取决于你的配置。
对于存储过程,函数,视图之类的功能,现在两个数据库都可以支持了。
另外多线程架构和多进程架构之间没有绝对的好坏,oracle在unix上是多进程架构,在windows上是多线程架构。
很多pg应用也是24/7的应用,比如skype. 最近几个版本VACUUM基本不影响PGSQL 运行,8.0之后的PGSQL不需要cygwin就可以在windows上运行。
至于说对于事务的支持,mysql和pgsql都没有问题。

5

PostgreSQL

PostgreSQL标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。PostgreSQL是完全由社区驱动的开源项目。它提供了单个完整功能的版本,而不像MySQL那样提供了多个不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声明即可。

MySQL

MySQL声称自己是最流行的开源数据库。LAMP中的M指的就是MySQL。构建在LAMP上的应用都会使用MySQL,如WordPress、Drupal等大多数php开源程序。MySQL最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版本:Standard、Enterprise、Classic、Cluster、Embedded与Community。其中有一些是免费下载的,另外一些则是收费的。其核心代码基于GPL许可,由于MySQL被控制在Oracle,社区担心会对MySQL的开源会有影响,所以开发了一些分支,比如: MariaDB和Percona。

MySQL与PostgreSQL的对比

6

MySQL数据库比较简单 网站开发最适合

PSQL基本就是Oracle迷你版,一般人上手较慢。自己考虑

7

django配postgresql,简直完美,可直接存json,查询检索用超方便

8

postgreSQL 和 MySql 都是支持 SQL标准(比如sql92, sql99),最主要的一点是: mysql 自从被oracle收购之后,社区担心它的命运像java一样,于是大量开源项目纷纷转向 postgresql。


postgresql 的管理工具:pgadmin 非常便捷,可以细粒度的操作数据库。

9

PostGis,MySQL虽然5.7支持geo(抄),但相比PostGis完善的地理坐标系,MySQL的geo更像是残次品

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章