分析类查询即便是TPC-H中的简单分析查询,PostgreSQL的性能都要远远优于MySQL。 昆仑数据库继承并扩展了PostgreSQL在分析类SQL查询处理方面的强大能力,可以支持TPC-H和TPC-DS的所有查询。同时,一个昆仑数据库集群可以管理的数据规模远远大于 一个PostgreSQL 实例。
一、测试环境
服务器配置:PostgreSQL和MySQL分别部署在一台:亚马逊m5.4xlarge(CPU 8cores 16 Threads,内存 64G,存储gp3, 通用型SSD卷 3000IOPS ,125 MB/s 吞吐量)上。
软件版本:
PostgreSQL:PostgreSQL 12.7 on x86_64-koji-linux-gn
MySQL: percona 8.0.26-16
数据库参数配置:
PostgreSQL:shared_buffers 8192MB
MySQL: innodb_buffer_pool_size 8192MB
测试背景:PostgreSQL和MySQL采用默认的安装配置,只调整了内存参数, 整个测试过程PostgreSQL没有任何优化行为。
二、测试数据
表的信息:
1张事实表:lineorder
4张维度表:customer,part,supplier,dates
表占用操作系统存储空间:19G
数据查询:11条标准SQL查询测试语句(统计查询、多表关联、sum、复杂条件、group by、order by等组合方式)。
具体SQL语句:附录1 TPC-H测试SQL。
三、测试结果
SQL |
查询时间(S) (PostgreSQL) |
查询时间(S) (MySQL) |
Q1.1 |
6.79 |
80.19 |
Q1.2 |
6.45 |
78.95 |
Q1.3 |
6.44 |
78.88 |
Q2.1 |
11.33 |
磁盘耗尽,跑不出结果 优化后:113.72 |
Q2.2 |
10.39 |
执行错误 |
Q2.3 |
8.65 |
执行错误 |
Q3.1 |
12.42 |
执行错误 |
Q3.2 |
9.2 |
执行错误 |
Q3.3 |
8.3 |
执行错误 |
Q4.1 |
12.5 |