首页 > 数据库 >MySQL 8.0 与 PostgreSQL 15.8 性能比拼!

MySQL 8.0 与 PostgreSQL 15.8 性能比拼!

时间:2024-12-13 09:00:08浏览次数:4  
标签:8.0 PostgreSQL 15.8 查询 并发 MySQL

PostgreSQL 和 MySQL 一直是热门数据库,广泛应用于各类项目场景。今天,我们就聚焦于 PostgreSQL 15.8 和 MySQL 8.0 这两个热门版本,在硬件配置和参数配置基本一致的情况下,通过详实的数据来一场深度的性能对比。

查询性能

PostgreSQL 15.8

对具有 50 万条记录的单表实施常用字段的简单精确查询时,其平均响应时长仅达 0.02 秒,
以三张表关联查询为例,分别是订单表(100万条记录)、产品表(80万条记录)和用户表(50万条记录),进行一个涉及多表连接、条件筛选以及聚合操作的复杂查询。PostgreSQL 15.8凭借其先进的查询优化器和精准的统计信息利用,能够在短短1.2秒内完成查询。

MySQL 8.0

同样对以一个存有 50 万条记录的用户信息表单表查询,针对诸如姓名、年龄、地址等常用字段开展简单的精确查询操作。MySQL 8.0 能够将平均响应时长把控在 0.03 秒上下。在单表查询的效率层面,PostgreSQL 15.8 更具优势。
同样是处理那三个关联表的复杂多表查询时,MySQL 8.0完成这样的查询平均需要约2.5秒,随着表数量和数据量的增加,查询时间明显上升。
相较于PostgreSQL 15.8的1.2秒,速度慢了一倍多。

并发处理能力

PostgreSQL 15.8

在并发处理的测试环节,我们构建了一个模拟高并发的场景,让 1000 个并发连接同时对数据库展开读写操作。
当遭遇相同的 1000 个并发连接的高并发状况时,PostgreSQL 15.8 凭借自身卓越的多版本并发控制(MVCC)机制与高效的并发调度算法。把事务处理的平均延迟成功限制在了 40 毫秒的范围之内。

MySQL 8.0

MySQL 8.0 依靠自身有效的锁机制以及线程池管理策略,在此情形下,其处理事务的平均延迟处于 80 毫秒上下,维持基本的稳定运行状态。不过,一旦并发连接的数量持续增多,其性能下滑的态势就会变得愈发显著。
MySQL 8.0 的平均延迟时间是PostgreSQL 15.8的两倍。
另外有机构使用 pgbench 进行性能测试,性能测试表明,在极限条件下,PostgreSQL 15.8 在点查性能方面展现出强大优势,而 MySQL 8.0 在这方面表现相对较弱。
在其他类型的测试中,如复杂查询、大量写操作等方面,MySQL 8.0 和 PostgreSQL 15.8 的性能基本持平。这意味着在实际应用中,需根据具体业务需求选择合适的数据库。若对点查性能要求较高,那么 PostgreSQL 15.8 可能是更好的选择;若业务场景中其他类型操作更为频繁,则可综合考虑两者特点,选取最适合的数据库。

数据插入

PostgreSQL 15.8

插入50万条记录到一个新的数据表,它每秒可插入约5500条记录

 

MySQL 8.0

同样是插入50万条记录。MySQL 8.0每秒大约能插入4500条记录,插入速度处于一个相对稳定的水平。
PostgreSQL 15.8比MySQL 8.0的插入速度提高了约22%。

原理剖析

MySQL 和 PostgreSQL 在事务处理方面存在显著差异,主要体现在事务隔离级别、锁机制、死锁处理和事务日志等方面。
事务隔离级别
MySQL 的默认事务隔离级别是 Repeatable Read。PostgreSQL 的默认事务隔离级别是 READ COMMITTED。
锁机制
MySQL 使用行锁和表锁来管理并发访问。InnoDB 存储引擎中行锁是默认的锁定机制,但在全表扫描等情况下可能会使用表锁。锁粒度可以在行级和表级之间变化,取决于具体查询和隔离级别。
PostgreSQL 也使用行锁,但其 MVCC 机制允许在没有锁的情况下读取旧版本的数据,从而在很多情况下避免了锁争用。MVCC 机制使得 PostgreSQL 在高并发环境下表现更好,减少了锁的需要。
死锁处理
MySQL 可以检测到死锁,并选择一个事务作为牺牲品,回滚它以解决死锁问题。用户需要手动处理事务回滚,并重新尝试事务。
PostgreSQL 也能检测到死锁,会自动回滚其中一个事务来解决死锁。用户同样需要重新尝试事务,但 PostgreSQL 提供了更详细的死锁信息,有助于用户理解死锁的原因。
事务日志
MySQL 的 InnoDB 存储引擎使用事务日志来记录事务操作,用于崩溃恢复,确保数据库重启后事务的完整性。
PostgreSQL 也使用事务日志(WAL,Write-Ahead Logging),且其 WAL 机制更为复杂,不仅用于崩溃恢复,还用于数据复制和点时间恢复,允许更灵活的恢复选项,包括在不中断服务的情况下进行备份和恢复。

总结与选择建议

综合性能对比,MySQL 8.0 和 PostgreSQL 15.8 各有优势与不足。对于不同的应用场景,选择建议如下:
倘若侧重于简易查询操作以及一般性的数据处置流程,那么 MySQL 8.0 将会是较为适宜的选项之一;而要应对繁杂的查询任务、高并发状况,同时还需对特殊的数据类型予以高效的处理,在这种情况下,PostgreSQL 15.8 大概率能够契合你的实际需求。

标签:8.0,PostgreSQL,15.8,查询,并发,MySQL
From: https://www.cnblogs.com/gdjgs/p/18604058

相关文章

  • VMware ESXi 8.0U3c macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成
    VMwareESXi8.0U3cmacOSUnlocker&OEMBIOS2.7集成网卡驱动和NVMe驱动(集成驱动版)发布ESXi8.0U3集成驱动版,在个人电脑上运行企业级工作负载请访问原文链接:https://sysin.org/blog/vmware-esxi-8-u3-sysin/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......
  • VMware ESXi 8.0U3c 发布 - 领先的裸机 Hypervisor
    VMwareESXi8.0U3c发布-领先的裸机Hypervisor同步发布Dell(戴尔)、HPE(慧与)、Lenovo(联想)、IEITSYSTEMS(浪潮信息)、Cisco(思科)、Fujitsu(富士通)、Hitachi(日立)、NEC(日电)、Huawei(华为)、xFusion(超聚变)OEM定制版请访问原文链接:https://sysin.org/bl......
  • VMware ESXi 8.0U3c macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版
    VMwareESXi8.0U3cmacOSUnlocker&OEMBIOS2.7标准版和厂商定制版ESXi8.0U3标准版,Dell(戴尔)、HPE(慧与)、Lenovo(联想)、IEITSYSTEMS(浪潮信息)、Cisco(思科)、Fujitsu(富士通)、Hitachi(日立)、NEC(日电)、Huawei(华为)、xFusion(超聚变)OEM定制版请访问......
  • openEuler 22.03 安装 .NET 8.0
    //查看内核信息1、cat/proc/version2、查看主机信息  hostnamectl3、openEuler 安装 rpm 源sudorpm-Uvhhttps://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm查看 dotnet 相关包信息sudodnfinfoaspnetcore-runtime-8.04、安装 ......
  • ubuntu18.04手动编译官网内核kernel
    前言全局说明ubuntu18.04手动编译官网内核kernel系统默认是5.4.0-84内核,尝试升级到5.4.286一、说明1.1环境:Ubuntu18.04.6LTS(Linuxtest-vm5.4.0-84-generic#94~18.04.1-UbuntuSMPThuAug2623:17:46UTC2021x86_64x86_64x86_64GNU/Linux)二、下载......
  • MaxKB中关于如何修改PostgreSQL的最大链接数
    报错内容:如图是访问MaxKB服务是突然弹出的报错信息,并伴随着MaxKB的崩溃,那么根据对应的信息我们需要修改对应最大链接数。下面也是给出了两种方法:1.通过ALTER语句修改最大连接数ALTERSYSTEMSETmax_connections=500;由于该语句修改的最大链接数量并不会立马生效所以我......
  • PostgreSQL 安装部署系列:采用源码方式在Centos 7.9 安装指定 PostgreSQL 数据库
    ========================================== 现供职于某上市互联网公司担任DBAOracle&PGACE称号,拥有OracleOCM、AWS、以及部分国产数据库等产品认证。喜欢技术分享,热爱交友,也热爱健身。2019年加入墨天轮,目前已发表了一百多篇原创文章,曾多次获评"月度墨力之星"。Oc......
  • Vmware系列&虚拟机系列【仅供参考】:vCenter8.0以上无DNS环境部署
    vCenter8.0以上无DNS环境部署vCenter8.0以上无DNS环境部署无DNS解决办法1.在安装-第1阶段:部署vCenterSever的第7步配置网络设置注意FQDN和IP地址,DNS服务器地址都统一填vCenter的IP地址。2.安装部署第一阶段时,不能点继续。3.打开浏览器登入部署的ESXI主机上......
  • 百期PostgreSQL技术公开课进行时,已讲到第73期了
    PostgreSQL数据库是一个国际范围内开源免费的数据库技术,这些年一直呈上升趋势,基于PostgreSQL强大的性能和可扩展性,国内也有越来越多的企业开始了PostgreSQL数据库的研发,比如腾讯云TDSQL的PG版,华为的openGauss,阿里云PolarDB的PG版等等,可见PostgreSQL数据库在国内会“火”起来。为......
  • 打开.net8.0版本项目时提示“找不到指定的 SDK“Microsoft.NET.Sdk”的解决办法
    排查解决方法:1. 确保已安装 .NET SDK:可以通过运行以下命令来检查已安装的SDK 版本:dotnet--list-sdks结果:列表中存在.net8.0版本,此处正常。2.检查项目文件:打开项目的 .csproj 文件,确保 <ProjectSdk="Microsoft.NET.Sdk"> 行存在且没有拼写错误。......