不合理的问题:greenplum 一条简单语句上性能远低于postgresql?

新手上路,请多包涵

GreenPlum环境: 1台 master host(内存:16G), 2台segment host(每台 2 segments,内存:16G), 版本:5.3.0
postgresql环境: 1台(硬件同GreenPlum的配置),版本:8.3.23

表: alert_log_sm_http 在pg与gp的大小相同,行数为:5000000行,ID为主键索引。

运行结果如下:
PG:
图片描述

GP:
图片描述

问题:
运行时间相差太大,分别为:PG:0.056ms,GP:1974.565ms。从explain的分析结果看,segmet做全表扫描的时间消耗太大。
这样的问题可以怎么解决?

阅读 4.8k
3 个回答

Greenplum 默认禁用 Index Scan, 打开试试。

set enable_indexscan = on;

对于小数据量、简单查询,Greenplum 的分布式架构比单机的 Postgresql 慢是正常的。分布式事务、查询计划下发等都会带来不小的固定时间开销。

新手上路,请多包涵

你可以使用基于GreenPlum4的修改版Deepgreen,这个版本提升了SQL的查询性能也是开源的。

如果是需要多台同步数据的话,这个同步的成本非常高昂,尤其是跨主机、跨网络。
希望能给你点参考

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏