终于来了,MySQL 5.7与PostgreSQL 9.6的百万QPS大比拼

Posted InsideMySQL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了终于来了,MySQL 5.7与PostgreSQL 9.6的百万QPS大比拼相关的知识,希望对你有一定的参考价值。


姜承尧

IT界最会讲故事的男同学


终于来了,MySQL 5.7与PostgreSQL 9.6的百万QPS大比拼


mysql与PG(PostgreSQL)谁的性能更强是一个很有意思的话题,知乎上的回答貌似都在说PG能将MySQL远远的甩在身后,甚至有些回答的同学还给出了性能测试的截图。


就区区看到的回答来看,测试的方法基本都很业余。2015年做过MySQL与PostgreSQL的测试对比:但是由于后续测试服务器被借调,因此未能完成后续的测试。


不过社区有人完成了这样的测试,而且找了MySQL与PG领域最为顶级的专家来进行调优,测试结果应该说非常具有公信力。需要说明的是,这个测试数据全部缓存在内存,测试服务器4 CPU、72Core、HT,一共144逻辑核。同学们可以将这个测试看成这两个数据库的最大性能,也可以观察这两个数据库在扩展性方面的对比。


好了,不多说,直接放上MySQL 5.7 vs PostgreSQL 9.6的测试结果。


终于来了,MySQL 5.7与PostgreSQL 9.6的百万QPS大比拼


测试采用sybench的测试模型,首先看根据主键进行查询的SELECT测试:


终于来了,MySQL 5.7与PostgreSQL 9.6的百万QPS大比拼

图中MySQL-5.7 Dimitri表示官方MySQL数据库,MySQL-5.7 Sveta使用的是Percona MySQL 5.7.15版本。从上图来看MySQL 5.7对比官方版本PG 9.6在性能上要好非常多,QPS可达160万,PG 最高140万。在并发100个线程后,官方PG的性能下降比较明显。


PG社区已定位问题所在,又是cache aligne所引发的,这个问题MySQL几年前已经发现,代码上也做了大量的优化。不过我们的程序员在开发时很少考虑这个问题,或许都对性能都不是很敏感。我记得有一年网易校招的笔试题,我出了一题关于cache align的相关问题,可以说同学们几乎是全军覆没。


pgxact-algin就是打上patch后的PG性能,貌似打上补丁后PG性能得到了极大的提示。最高QPS可以有170W(但官方目前还没整合该patch,需要在其他场景下对此patch做进一步验证)。整体来看,在打上patch后,PG与MySQL在主键SELECT上不分轩轾。


终于来了,MySQL 5.7与PostgreSQL 9.6的百万QPS大比拼

对sysbench的RO(READ ONLY)测试来看,PG做的要比MySQL好,但是奇怪的是Percona版本比官方版本要差非常多。其实,这个测试结果有点出乎我的意料,因为range查询和ORDER BY这样的查询来看,索引组织表会更有优势。不过总体来看两者最大差距10%,基本还是一个水准,高并发下能达到100万QPS。


终于来了,MySQL 5.7与PostgreSQL 9.6的百万QPS大比拼


在sysbench的RW(读写)场景下,官方MySQL 5.7表现出了最好的性能,领先PG的幅度较大,超过40万 TPS(72万QPS)。async和trx=2表示允许事务非持久话,在生产上使用的可能性较小。



从最终测试来看,可以看出PG的性能并没有比MySQL好,在sysbench读写测试的场景下MySQL会更有优势。总体来看,两者在OLTP上的表现都非常棒,但MySQL在生态和互联网应用上的成熟度来看毫无疑问具有领导地位。


可以发现关系型数据库在全内存下的表现单实例已能超过150W QPS,即使读写也能达到72W QPS。而环顾四周,Redis和Memcached这类纯内存KV数据库似乎都无法达到这个高度。这是可能是一个有意思的话题,未来缓存怎么选择?用Redis还是MySQL Memcahced Plugin呢?前端的缓存速度还不如RDBMS?分布式呢?一个分布式集群QPS 100W?说不定一台MySQL又可以搞定了呢?


如果想要获得本次测试的完整介绍与Slide,可点击下方的{阅读原文}


长期坚持原创真的很不容易,多次想放弃。坚持是一种信仰,专注是一种态度!点赞是对作者最好的褒奖哟




猜你喜欢






以上是关于终于来了,MySQL 5.7与PostgreSQL 9.6的百万QPS大比拼的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 5.7原生JSON格式支持

文档数据库们已在厕所哭晕,MySQL 5.7原生支持JSON格式

索尼无人机终于来了,然而在大疆面前完全不经打

Mac上重置mysql 5.7密码

终于来了,超详细手眼标定原理与实战视频教程

问题来了,PostgreSQL 的好处都有啥?