|
对比项 |
MySQL |
PostgreSQL |
|
|
数据库对比 |
版本 |
MySQL 8 |
PostgreSQL 10 |
|
定位 |
MySQL适用于简单web应用程序或者需要简单schema、SQL执行数据库操作的应用,具有强大的便利性。更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景(比如google、facebook、alibaba) |
PG完全支持ACID,对开发人员和DBA非常友好,是跨任何域的高并发事务、复杂应用程序最佳选择,可以满足基于WEB和移动的各种应用程序服务。PG更加适合严格的企业应用场景(比如金融、电信、ERP、CRM) |
|
|
架构对比 |
1、MySQL是线程模式; |
1、PostgreSQL是进程模式; |
|
|
数据类型 |
支持许多数据类型,从传统的数据类型(integer、date、timestamp)到复杂类型(json、xml、text) |
不止支持传统数据类型:numeric、strings、date、decimal等,还支持非结构的数据类型:json、xml、hstore等以及网络数据类型、bit字符串,还有ARRAYS,地理数据类型 |
|
|
复制 |
异步、半同步,复制简单灵活,在容灾、分布式实现明显优势 |
可以异步也可以同步 |
|
|
性能 |
1、高并发读写,负载逼近极限下,MySQL
明显出现一个波峰后下滑; |
高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降; |
|
|
稳定性 |
用户都遇到过Server级的数据库丢失的场景 |
PostgreSQL
的稳定性极强 |
|
|
安全性 |
1、原生仅支持密码验证,可MD5加密; |
1、支持操作系统、密码、SSL、PAM、MD5加密认证方式; |
|
|
高可用性 |
1、MySQL可以适应24/7运行。在绝大多数情况下,你不需要为MySQL运行任何清除程序 |
1、PostgreSQL目前仍不完全适应24/7运行,这是因为你必须每隔一段时间运行一次VACUUM。 |
|
|
多表校验 |
MySQL的优化器较简单,系统表、运算符、数据类型的实现都很精简,非常适合简单的查询操作嵌套循环连接(nested-loop),多个表关联查询(超过3张表)效率相比PG较低 |
对表连接支持较完整,优化器的功能较完整,支持的索引类型很多,复杂查询能力较强支持嵌套循环连接(nested-loop)、排序-合并连接(sort-merge join)、散列连接(hash join),效率高于MYSQL |
|
|
| |||
|
结论 |
1、满足业务系统所需; |
1、最接近ORACLE的开源数据库; |
|
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




