为什么高性能场景选用Postgres SQL 而不是 MySQL


为什么高性能场景选用Postgres SQL 而不是 MySQL

文章插图
 
一、 数据库简介 TLDR;1.1 MySQL MySQL声称自己是最流行的开源数据库,它属于最流行的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一 。LAMP中的M指的就是MySQL 。构建在LAMP上的应用都会使用MySQL. MySQL最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购 。Oracle收购导致MySQL的出现两个版本:商业版和社区版 。对于后者,由于Oracle控制了MySQL的开发,受到了广大使用者的批评 。
1.2 PostgreSQL PostgreSQL标榜自己是世界上最先进的开源数据库,属于关系型数据库管理系统(ORDBMS), 是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统,最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继 。PostgreSQL是完全由社区驱动的开源项目 。它提供了单个完整功能的版本,而不像MySQL那样提供了多个不同的社区版、商业版与企业版 。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声明即可 。
Note:
MySQL的层级关系: 实例 -> 数据库 -> 表
Postgres 的层级关系: 实例 -> 数据库 -> Schema -> 表
schema 可以理解为命名空间,不影响使用
二、性能对比测试环境markdown复制代码
MySQL: - 硬件配置: 4核心 16GB内存 - 版本: MySQL 8.0 Postgres SQL: - 硬件配置: 4核心 16GB内存 - 版本:Postgres SQL 13
为什么高性能场景选用Postgres SQL 而不是 MySQL

文章插图
 
此次压测数据, SELECT 均为SELECT 按照主键查询 ,  UPDATE按照主键进行UPDATE,INSERT则为一次INSERT一行数据 。从压测数据上来看,我们可以得出以下几个结论:
  1. 在吞吐量上而言 , Postgres SQL 在SELECT性能上优于MySQL一倍,在INSERT上优于4-5倍,UPDATE 则优5-6倍
  2. 从平均耗时上来看,Postgres SQL优于MySQL不止数倍
  3. 尤其从热点行更新上看出,MySQL性能仅为Postgres SQL的 ,  1/8左右,耗时也增加了7倍
三、适用场景,如何选择?相对于Postgres MySQL更简单,所以有着更高的流行度,在技术资料,以及技术组件支持上,支持的也更完善一些, 但不意味着它并不是不能替代的 ,  于笔者而言 ,  MYSQL更像用于中小企业、个人的一款数据库工具,因为会的人多,文档资料比较完善,所以入手难度低 。但这些并不意味着MYSQL是最好的 。
为什么高性能场景选用Postgres SQL 而不是 MySQL

文章插图
 
从上图来看Postgres SQL的发展势头非常迅猛,目前已经隐隐有追上MySQL的趋势,而MySQL相对而言,使用情况受欢迎度一直呈现下降趋势 。
MySQL适用的场景MySQL适用于简单的应用场景,如电子商务、博客、网站等, 大中小型系统均可以使用MySQL ,  它最高支持千万级别到数亿级别的数据量 ,  但是在高性能要求的情况下, 比如较快的响应和较高的吞吐量的时候 ,  MYSQL的性能稍微捉襟见肘 ,  另外,在查询条件比较复杂、业务吞吐量要求不高,响应时长无要求,的时候,可以选择MYSQL,
Postgres SQL适用的场景总的来说, Postgre SQL更适合复杂的数据结构、高级应用和大规模数据集, 当然如果数据规模比较?。?也可以选择Postgres SQL ,  无论是什么场景,如果你想用Postgres SQL, 总可以找到对应的解决方法, 有且仅有,在查询条件比较复杂,的时候不太适用,因为根据我们实际线上的业务表现是 Postgre SQL可能会选错索引 。
四、总结PostgreSQL相对于MySQL的优势