PostgreSQL与MySQL,谁更胜一筹

news/2024/11/29 13:53:00/

前言

PostgreSQL与MySQL都是优秀的开源数据库。在日常学习中,新手可能接触最多的是MySql,但是实际工作中,两者的应用场景其实都很广。我之前的做过上网流量销售业务,用的是MySQL,现在接触广告业务,用的是pg数据库,每天广告的pv数据都是在亿级别,下面简单分享一下这两者之间的一些区别吧,不是很全面,但是可以了解一下,说不定后续用的上,至少吹牛逼的时候,你吹的逼格别人高一些。

性能对比

数据库版本和环境配置

MySQLPG
数据库版本MySQL 8.0Postgres SQL 13
硬件配置4核心 16GB4核心 16GB

测试说明

SELECT 均为SELECT 按照主键查询,UPDATE按照主键进行UPDATE,INSERT则为一次INSERT一行数据。

小结

平均耗时

Postgres SQL优于MySQL不止数倍

吞吐量

Postgres SQL 在SELECT性能上优于MySQL一倍, 在INSERT上优于4-5倍, UPDATE 则优5-6倍

尤其从热点行更新上看出,MySQL性能仅为Postgres SQL的,1/8左右,耗时也增加了7倍

使用场景对比

MySql的适用场景

MySQL适用于简单的应用场景,比如一般的电子商务、博客等, 大中小型系统均可以使用MySQL,它最高支持千万级别到数亿级别的数据量,但是在高性能要求的情况下,比如较快的响应和较高的吞吐量的时候,MYSQL的性能跟Pg比起来,pg性能还是好很多。另外,在查询条件比较复杂、业务吞吐量要求不高,响应时长无要求,的时候,可以选择MYSQL。

Postgres SQL适用的场景

总的来说,Postgre SQL更适合复杂的数据结构、高级应用和大规模数据集,当然如果数据规模比较小,也可以选择Postgres SQL,无论是什么场景,如果你想用Postgres SQL,总可以找到对应的解决方法。有的人说pg没有mysql好用,只是使用的姿势不太正确,用起来还是很香的。

优劣势对比

PG的优势

性能不同: Postgre SQL在性能上明显优于MYSQL, 无论是在耗时,还是在整体吞吐量上,有显著优势。

Postgre SQL在单行更新上有明显优势,尤其是启用了HOT UPDATE后, 性能比MYSQL高了一个数量级。

标准不同: 在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨。

存储方式不一样: Postgre SQL主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。

数据备份方式不同:
Postgre SQL的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。

事务隔离级别不同:
MySQL 的事务隔离级别 repeatable read 并不能阻止常见的并发更新, 得加锁才可以, 但悲观锁会影响性能, 手动实现乐观锁又复杂. 而 Postgre SQL 的列里有隐藏的乐观锁 version 字段, 默认的 repeatable read 级别就能保证并发更新的正确性, 并且又有乐观锁的性能。这一点真的很不错,日常广告数据因为它有这一点优势,省了很多的麻烦。

PG相对MySQL的劣势

(1)Postgre SQL 存在vacuum,需要根据具体使用场景,来调整vacuum的参数。

(2)Postgre SQL 的索引选择方面,选错的概率稍高一些(实测), 而且不能跟mysql 一样方便的使用force_index。

(3)Postgre SQL系统表设计相对复杂, 在进行一些系统表的统计、操作等方面比较复杂。

写在最后

这里仅仅对两者进行一些对比,两者各有千秋,都很优秀。还是那句话,适用于你们业务场景的选择就是最好的选择。后续对Mysql和Pg的一些容易踩坑的点进行汇总再分享出来,工作中经常容易踩坑。

好了,今天的内容就分享到这里,更多干货持续输出中。分享不易,觉得有点收获的话,帮忙点赞加在看,你的点赞是我们持续输出的动力,下期再见!


http://www.ppmy.cn/news/1360234.html

相关文章

计算任意两个日期之间天数 Matlab

tdatetime(today);%get今天日期t12002-04-01;mdatenum(t1-t1) %做差后是hour,转化为天数参考 matlab日期函数

寒假学习总结

目录 一、引言 寒假时间学习大致进度 二、学习内容概述 三、学习成果与收获 学习成果具体展现: 1.深搜广搜 2.栈 3.队列 4.链表 5.动态规划 6.并查集 7.记忆化搜索 8.二叉树 9.图 10.堆 11.寒假部分收录完成题目(少数没有收录&#xff09…

《剑指Offer》笔记题解思路技巧优化_Part_6

《剑指Offer》笔记&题解&思路&技巧&优化_Part_6 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题🟡1.LCR 168. 丑数—— 丑数🟢2. LCR 16…

信息学奥赛一本通1209:分数求和

1209:分数求和 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 19111 通过数: 10647 【题目描述】 输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为11;若最终结果的分母为11&am…

力扣代码学习日记六

Problem: 66. 加一 思路 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输…

线性代数:线性方程组解的结构

目录 齐次/非齐次方程组的解 Ax 0 的解的性质 定理 Ax b 的解的性质 相关证明 例1 例2 例3 齐次/非齐次方程组的解 Ax 0 的解的性质 定理 Ax b 的解的性质 相关证明 例1 例2 例3

力扣226 翻转二叉树 Java版本

文章目录 题目描述解题思路代码 题目描述 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:root…

外包干了3个月,技术退步明显

先说一下自己的情况,本科生,19年通过校招进入广州某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…