PostgreSQL 与 MySQL 相比,优势何在?【转】

最近看到PostgreSQL话题比较多,就搜索了一下它与mysql的对比
作者:知了
链接:http://www.zhihu.com/question/20010554/answer/74037965
来源:知乎

一、PG相对于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适合静态数据的查询场景。

三、总体上来说,开源数据库都不是很完善,商业数据库oracle在架构和功能方面都还是完善很多的。从应用场景来说,PG更加适合严格的企业应用场景(比如金融、电信、ERP、CRM),而MySQL更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景(比如google、facebook、alibaba)。

时间: 2024-08-27 00:53:05

PostgreSQL 与 MySQL 相比,优势何在?【转】的相关文章

免费数据库(SQLite、Berkeley DB、PostgreSQL、MySQL、Firebird、mSQL、MSDE、DB2 Express-C、Oracle XE)

SQLite数据库是中小站点CMS的最佳选择 SQLite 是一个类似Access的轻量级数据库系统,但是更小.更快.容量更大,并发更高.为什么说 SQLite 最适合做 CMS (内容管理系统)呢?并不是说其他数据库不好, Oracle.MySQL.SQLServer 也都是非常优秀的 DBS,只不过他们设计目标不同,特性不同,所以只有更适用某个应用场景,没有绝对的好坏之分. 我归纳的中小型站点的CMS的特点如下: 1.数据量不超过10万 2.日页面访问量不超过10万 3. 一部分网站全部生成

PostgreSQL与MySQL比较

PostgreSQL首要优势: 1. PostgreSQL完全免费,并且是BSD协议,假如你把PostgreSQL改一改,然后再拿去卖钱,也没有人管你,这一点很重要,这表明了PostgreSQL数据库不会被其它公司操控.oracle数据库不必说了,是商业数据库,不开放.而MySQL数据库虽然是开源的,但如今跟着SUN被oracle公司收买,如今根本上被oracle公司操控,其实在SUN被收买之前,MySQL中最重要的InnoDB引擎也是被oracle公司操控的,而在MySQL中许多重要的数据都是

postgresql与mysql

原贴:http://www.oschina.net/question/126398_61956?sort=time 性能相比,在较少的访问下,mysql优于postgresql,但较高的访问下,postgresql却远远高于mysql. mysql用的是多线程:多线程无需跨进程边界, 程序逻辑和控制方式简单, 所有线程可以直接共享内存和变量等, 线程方式消耗的总资源比进程方式好. 所以在低访问的情况下mysql优于postgresql,但差别不大,如果差别太多,能只能说是postgresql线程

[评测]低配环境下,PostgresQL和Mysql读写性能简单对比

[评测]低配环境下,PostgresQL和Mysql读写性能简单对比 原文链接:https://www.cnblogs.com/blog5277/p/10658426.html 原文作者:博客园--曲高终和寡 *******************如果你看到这一行,说明爬虫在本人还没有发布完成的时候就抓走了我的文章,导致内容不完整,请去上述的原文链接查看原文**************** 由于最近经过朋友启发,又有了一个写个人项目的小想法,在这次个人项目中准备学习并使用一些之前自己没有掌握的新

[翻译]PostgreSQL比MySQL/MariaDB的优势

近十年来很多开发者和专业人士对MySQL和PostgreSQL进行了比较,大部分人认为后者性能更优.PostgreSQL的支持者认为它的标准支持和ACID[1]性都超过了MySQL.MySQL还流行的原因在于还有很多Linux的Web程序安装包里带着它,但是自从拥有MySQL版权和商标的Sun被Oracle收购后,人们都在担心MySQL不会像以前那样开放了.同时PostgreSQL不仅快,而且支持JSON,使他成为少数的支持NoSQL的关系型数据库.(小道消息:MySQL的作者Monty Wid

mongodb与mysql相比的优缺点

与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值.这在某些情况下,例 如通过ATM查看账户信息的时候很重要,但对于Wordnik来说,数据是不断更新和增长的,这种“精确”的保证几乎没有任何意义,反而会产生很大的延 迟.他们需要的是一个“大约”的数字以及更快的处理速度. 但某些情况下MongoDB会锁住数据库.如果此时正有数百个请求,则它们会堆积起

【美菜网】PostgreSQL与MySQL比较

MySQL相对于PostgreSQL的劣势: MySQL PostgreSQL 最重要的引擎InnoDB很早就由Oracle公司控制.目前整个MySQL数据库都由Oracle控制. BSD协议,没有被大公司垄断. 对复杂查询的处理较弱,查询优化器不够成熟 很强大的查询优化器,支持很复杂的查询处理. 只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join). 都支持 性能优化工具与度量信息不足 提供了一些性能

PostgreSQL与MySQL的区别收集(转)

特性 MySQL PostgreSQL 实例 通过执行 MySQL 命令(mysqld)启动实例.一个实例可以管理一个或多个数据库.一台服务器可以运行多个 mysqld 实例.一个实例管理器可以监视 mysqld 的各个实例. 通过执行 Postmaster 进程(pg_ctl)启动实例.一个实例可以管理一个或多个数据库,这些数据库组成一个集群.集群是磁盘上的一个区域,这个区域在安装时初始化并由一个目录组成,所有数据都存储在这个目录中.使用 initdb 创建第一个数据库.一台机器上可以启动多个

PostgreSQL入门,PostgreSQL和mysql

PostgreSQL被誉为"世界上功能最强大的开源数据库",是以加州大学伯克利分校计算机系开发的POSTGRES 4.2为基础的对象关系型数据库管理系统. PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询.外键.触发器.视图.事务完整性.MVCC.同样,PostgreSQL 可以用许多方法扩展,比如,通过增加新的数据类型.函数.操作符.聚集函数.索引. 开发者可以免费使用.修改和分发 PostgreSQL,不管是私用.商用.还是学术研究使用. Postgr