合并数据时,postgres-xl 自连接花费 10 秒

Posted

技术标签:

【中文标题】合并数据时,postgres-xl 自连接花费 10 秒【英文标题】:postgres-xl self join cost 10 seconds when combine data 【发布时间】:2017-05-17 04:02:53 【问题描述】:

我的 postgres-xl 版本是 9.5r1.5 稳定版。 如下查询时

SELECT * FROM tests t1 LEFT JOIN tests t2 ON t1.id1 = t2.id2 WHERE t1.id1=10000;

这个查询很简单,只返回一行。当我在数据节点中运行它时,只花费了 10 毫秒。但是在坐标节点中花费了 10020 毫秒。 我尝试了其他一些查询,并确保在加入同一个表坐标节点时花费 10 秒。 但是如果查询什么都不返回,那么它在坐标节点中只需要 20 毫秒。所以我认为,当坐标节点组合数据时,它有问题。 谁能告诉我如何避免这种情况。 非常感谢。

【问题讨论】:

请给出所有提到的案例的计划 你使用的是复制模式吗? 您是否确认您正在加入主键并且它们已正确编入索引?正如已经问过的那样,解释计划是什么样的 【参考方案1】:

也可以试试“SET work_mem = '256MB'; SET LOCAL work_mem = '256MB';”。增加用于排序和清理的默认内存。

【讨论】:

【参考方案2】:

这更像是https://dba.stackexchange.com 和someone had the same problem there 的问题。

您可以在链接的问题上看到my answer,这是一个简短的摘要:

这是一个 postgres-xl 错误,由使用行重新分配计划和执行的查询触发,并且某些节点没有任何行。

您可以通过更改查询、更改表分布或添加数据来解决此问题。您可以使用EXPLAIN 来检查您的查询是否涉及数据重新分配。

【讨论】:

以上是关于合并数据时,postgres-xl 自连接花费 10 秒的主要内容,如果未能解决你的问题,请参考以下文章

你能使用 Postgres-XL 的 Round Robbin 或 Hash 数据分片选项并有冗余吗

Postgres-XL 还不支持 TRIGGER

Postgres-XL:JSON 函数

Postgres-XL 10R1 release版本发布

postgres-xl 集体搭建

Postgres-XL 数据库