PolarDB for PostgreSQL TPC-H 性能测试指南

PolarDB for PostgreSQL TPC-H 性能测试指南

【免费下载链接】PolarDB-for-PostgreSQL A cloud-native database based on PostgreSQL developed by Alibaba Cloud. 【免费下载链接】PolarDB-for-PostgreSQL 项目地址: https://gitcode.com/gh_mirrors/po/PolarDB-for-PostgreSQL

概述

TPC-H 是业界广泛使用的数据库分析型场景性能测试标准。本文将详细介绍如何在 PolarDB for PostgreSQL 数据库上执行 TPC-H 测试,包括测试环境准备、数据生成、查询执行以及性能对比分析。

TPC-H 测试简介

TPC-H 是由 TPC(事务处理性能委员会)制定的一套决策支持基准测试,主要用于评估数据库系统在分析型查询场景下的性能表现。它包含:

  • 8张具有业务含义的表
  • 22条复杂的分析型查询语句
  • 可扩展的数据量(Scale Factor)

测试结果通常以查询响应时间、吞吐量等指标来衡量数据库系统的分析处理能力。

测试环境准备

部署 PolarDB for PostgreSQL

我们提供两种部署方式:

1. Docker快速部署
docker pull polardb/polardb_pg_local_instance:11
docker run -it \
    --cap-add=SYS_PTRACE \
    --privileged=true \
    --name polardb_pg_htap \
    --shm-size=512m \
    polardb/polardb_pg_local_instance:11 \
    bash
2. 共享存储集群部署

对于生产环境或更复杂的测试场景,建议采用基于共享存储的集群部署方式,这能充分发挥 PolarDB 的分布式能力。

生成测试数据

使用 tpch-dbgen 工具生成测试数据:

git clone https://github.com/ApsaraDB/tpch-dbgen.git
cd tpch-dbgen

生成不同规模的数据集:

# 100MB规模数据
./build.sh --scale=0.1

# 1GB规模数据
./build.sh

工具支持的主要参数:

  • --scale: 数据规模(GB)
  • --user: 数据库用户名
  • --db: 数据库名
  • --host: 数据库地址
  • --port: 数据库端口

性能测试执行

PostgreSQL 单机并行查询

以Q18查询为例:

-- 设置并行度
SET max_parallel_workers_per_gather = 2;

-- 查看执行计划
\i finals/18.explain.sql

-- 执行查询
\i finals/18.sql

在1GB数据集上,单机并行查询耗时约80秒。

ePQ单机并行查询

PolarDB的弹性并行查询(ePQ)功能可以显著提升分析查询性能:

-- 启用ePQ
SET polar_enable_px = ON;

-- 设置表级并行度
ALTER TABLE lineitem SET (px_workers = 100);
-- 其他表类似设置...

-- 执行查询
SET polar_px_dop_per_node = 1;
\i finals/18.sql

不同并行度下的性能对比:

并行度查询耗时
159.11s
242.40s
419.89s
810.94s

可以看到,随着并行度增加,查询性能呈线性提升趋势。

ePQ跨机并行查询

在真正的分布式环境中,ePQ可以跨多台机器并行执行查询,充分利用集群计算资源。部署方式与单机类似,但需要确保:

  1. 网络配置正确(建议MTU设置为9000)
  2. 存储节点可被所有计算节点访问
  3. 计算节点间网络延迟低

性能优化建议

  1. 合理设置并行度:根据集群规模和资源情况调整polar_px_dop_per_node参数
  2. 内存管理:对于复杂查询如Q17/Q18,可能需要调整内存相关参数
  3. 统计信息:确保ANALYZE已执行,优化器能生成最佳执行计划
  4. 硬件配置:SSD存储、充足内存和CPU核心能显著提升性能

总结

通过TPC-H测试可以看出,PolarDB for PostgreSQL的ePQ功能能显著提升分析型查询性能。在8并行度下,Q18查询性能提升近8倍。对于大规模数据分析场景,PolarDB的分布式架构和弹性扩展能力使其成为理想的选择。

实际生产环境中,建议根据业务特点和数据规模进行更全面的性能测试和调优,以获得最佳性能表现。

【免费下载链接】PolarDB-for-PostgreSQL A cloud-native database based on PostgreSQL developed by Alibaba Cloud. 【免费下载链接】PolarDB-for-PostgreSQL 项目地址: https://gitcode.com/gh_mirrors/po/PolarDB-for-PostgreSQL

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值