Greenplum 点查(按PK查询)性能与提升空间

简介:

标签

PostgreSQL , Greenplum , 点查 , 按PK查询


背景

点查,基于PK的查询或者OLTP类查询,实际上并不是GPDB 擅长的,GPDB擅长的是海量的OLAP。

不过在企业、政府等窗口服务类业务,并发实际上并不高,如果GPDB的点查性能达到一定的性能时,实际上也能满足这类场景的需求。

测试

下面是一组测试,造10亿条测试数据,按PK查询。

create table t_pk(id int primary key, info text, crt_time timestamp);  
  
postgres=# insert into t_pk select id, md5(random()::text), clock_timestamp() from generate_series(1,1000000000) t(id);  
INSERT 0 1000000000  

使用pgbench压测,GPDB点查性能如下,达到了接近1万TPS,实际上已经满足大多数的企业、政府等窗口服务类业务的查询需求。

transaction type: ./test.sql  
scaling factor: 1  
query mode: simple  
number of clients: 64  
number of threads: 64  
duration: 120 s  
number of transactions actually processed: 1076112  
latency average = 7.136 ms  
latency stddev = 16.734 ms  
tps = 8931.155844 (including connections establishing)  
tps = 8933.619173 (excluding connections establishing)  
script statistics:  
 - statement latencies in milliseconds:  
         0.002  \set id random(1,1000000000)  
         7.135  select * from t_pk where id=:id;  

同一台物理机,PostgreSQL的点查性能如下,超过了100万tps。

transaction type: ./test.sql  
scaling factor: 1  
query mode: prepared  
number of clients: 64  
number of threads: 64  
duration: 120 s  
number of transactions actually processed: 126137940  
latency average = 0.061 ms  
latency stddev = 0.032 ms  
tps = 1051029.358638 (including connections establishing)  
tps = 1051103.770277 (excluding connections establishing)  
script statistics:  
 - statement latencies in milliseconds:  
         0.001  \set id random(1,1000000000)  
         0.060  select * from t_pk where id=:id;  

当然,这里并不是要PK的意思,只是说GPDB还有很大的提升空间。

GPDB 5.x的版本,据说点查性能已经提升到5万+的tps了。

满足窗口类查询场景完全没有问题,GPDB可以作为一个OLTP+OLAP(偏OLAP)的数据库来使用,满足企业、政府等窗口服务类业务,海量数据的分析与实时查询的需求。

PG和GPDB如何选择?

《PostgreSQL 规格评估 - 微观、宏观、精准 多视角估算数据库性能(选型、做预算不求人)》

《数据库选型之 - 大象十八摸 - 致 架构师、开发者》

《数据库选型思考》

《空间|时间|对象 圈人 + 透视 - 暨PostgreSQL 10与Greenplum的对比和选择》

GPDB的写入性能与选择

《Greenplum insert的性能(单步\批量\copy) - 暨推荐使用gpfdist、阿里云oss外部表并行导入》

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
运维 监控 数据可视化
日志服务 HarmonyOS NEXT 日志采集最佳实践
鸿蒙操作系统(HarmonyOS)上的日志服务(SLS)SDK 提供了针对 IoT、移动端到服务端的全场景日志采集、处理和分析能力,旨在满足万物互联时代下应用的多元化设备接入、高效协同和安全可靠运行的需求。
118023 100
|
10月前
|
人工智能 程序员 测试技术
通义灵码2.0 AI 程序员体验:优化与问题解决的全过程
通义灵码2.0 AI 程序员体验:优化与问题解决的全过程 本文详细记录了使用通义灵码2.0智能编程助手的过程,涵盖项目初始化、界面优化、调试及与AI交互。通过实际操作,展示了其在代码生成、问题诊断和性能优化方面的强大功能。对比1.0版本,2.0在用户体验、智能化和问题解决上有显著提升,极大提高了开发效率。
641 1
通义灵码2.0 AI 程序员体验:优化与问题解决的全过程
|
传感器 物联网 5G
5G技术:物联网与实时通讯的融合
【9月更文挑战第27天】第五代移动通信技术(5G)与物联网(IoT)的融合正引领我们进入智能化新时代。5G凭借高速率、低时延和大连接等特点,为物联网的广泛应用奠定了基础。本文深入探讨5G技术特点及与物联网融合带来的革命性变革,涵盖智能家居、工业自动化、智慧城市和医疗健康等多个领域。尽管面临数据安全、网络建设和设备互操作性等挑战,但5G与物联网的融合将推动各行各业实现前所未有的变革和机遇,助力实现更加智能、互联的新时代。
|
Shell Linux Docker
docker常用命令大全(基础、镜像、容器、数据卷)
这些命令仅仅是 Docker 命令行工具的冰山一角,但对于日常操作来说已经非常全面。通过熟练地使用这些基础命令,用户可以有效地管理 Docker 的镜像、容器、数据卷和网络。随着用户对 Docker 的深入使用,更高级的命令和选项将会变得必需,但上面列出的命令已经为用户提供了一个坚实的起点。对于初学者来说,理解和掌握这些常用命令是深入学习 Docker 的基础。
852 5
docker常用命令大全(基础、镜像、容器、数据卷)
|
SQL 缓存 关系型数据库
MySQL Limit实现原理
本文详细探讨了MySQL中`LIMIT`子句的实现原理及其在不同场景下的应用。`LIMIT`用于控制查询结果的行数,结合`OFFSET`可实现分页查询。其内部实现涉及解析器、优化器和执行器三部分,通过索引利用、子查询优化等提升性能。文章还提供了性能优化策略,如索引优化、覆盖索引及延迟关联等,并给出实践建议。
457 3
|
设计模式 测试技术 Python
Python中的猴子补丁
Python中的猴子补丁
|
存储 缓存 NoSQL
浅谈分布式数据库系统
【6月更文挑战第4天】该文探讨了数据库管理系统的解决方案,建议使用Redis和MQ作为缓存和中转,减轻数据库压力。分布式系统需透明处理数据位置,解决查询执行和正确性问题。了解这些底层设计有助于应对性能挑战。
528 8
浅谈分布式数据库系统
|
安全 关系型数据库 数据库
在 Postgres 中使用 Drop Column
【8月更文挑战第11天】
575 0
|
API 数据安全/隐私保护 网络架构
【Azure Developer】使用Postman获取Azure AD中注册应用程序的授权Token,及为Azure REST API设置Authorization
【Azure Developer】使用Postman获取Azure AD中注册应用程序的授权Token,及为Azure REST API设置Authorization
334 0
|
SQL 缓存 Oracle
Oracle中序列Sequence详解
Oracle中序列Sequence详解