pg_clickhouse 0.10:子查询下推与千倍加速

pg_clickhouse v0.10: Subquery pushdown and 1000x faster TPC-H queries

pg_clickhouse 0.10:子查询下推与千倍加速

pg_clickhouse v0.10.0 带来了重大突破,TPC-H 基准测试中完全下推的查询数从 12 个增至 16 个。特别是 Q17 查询,性能从 32.7 秒飙升至 37 毫秒,实现了千倍提升。新版本重构了基于 C 语言的二进制驱动,解决了并发崩溃问题,并大幅扩展了函数和聚合函数的下推能力。团队还深入解决了 PostgreSQL 与 ClickHouse 在 NULL 值处理上的逻辑差异,确保下推查询结果的一致性。此外,统计聚合、有序集聚合及分区聚合等功能也得到全面支持,让分析型工作负载在 ClickHouse 上跑得更快更稳。

Q17 是本次更新的奖杯:一个原本需要 32.7 秒的关联子查询,在完全下推后仅需 37 毫秒,性能提升了三个数量级。
  1. nasretdinov

    作为一个曾尝试过条件下推、跨语言转译等操作的人,我觉得这真的很令人印象深刻。在保持原始数据库语义的同时正确下推子查询,这是我无法想象自己能做到的。

  2. manjose2018

    请考虑将 pg_clickhouse 与 pgrust 进行比较。

    https://malisper.me/how-we-made-postgres-hundreds-of-times-f...

  3. manbash

    > 12 月的头条功能是教会规划器将整个相关 EXISTS 子查询下推为单个 LEFT SEMI JOIN,而不是每行外层数据进行一次 ClickHouse 往返的嵌套循环。这一改进使得 TPC-H 查询中通过的数量从 22 个中的 3 个跃升至 12 个。

    LLM 们真喜欢抛出一堆陈词滥调,比如“move the needle”。这种行话的突兀对比让人很不舒服,总让我在读到一半时出戏。

同日更多故事

2026-08-11