<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>pg_clickhouse &#8211; mylogs.cn</title>
	<atom:link href="https://mylogs.cn/tag/pg_clickhouse/feed/" rel="self" type="application/rss+xml" />
	<link>https://mylogs.cn</link>
	<description>发现、记录、分享</description>
	<lastBuildDate>Wed, 12 Aug 2026 06:40:26 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>pg_clickhouse 子查询下推：最慢查询从 32 秒压到 37 毫秒</title>
		<link>https://mylogs.cn/pg_clickhouse-v010-subquery-pushdown/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Wed, 12 Aug 2026 06:40:03 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[ClickHouse]]></category>
		<category><![CDATA[pg_clickhouse]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[TPC-H]]></category>
		<category><![CDATA[分析查询]]></category>
		<category><![CDATA[子查询下推]]></category>
		<category><![CDATA[数据库扩展]]></category>
		<guid isPermaLink="false">https://mylogs.cn/pg_clickhouse-v010-subquery-pushdown/</guid>

					<description><![CDATA[pg_clickhouse 是 ClickHouse 推出的一款 PostgreSQL 扩展，让用户无需改写任 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">pg_clickhouse 是 ClickHouse 推出的一款 PostgreSQL 扩展，让用户无需改写任何 SQL，就能直接在 PostgreSQL 里把分析查询下推到 ClickHouse 执行。最新发布的 v0.10.0 版本把重点放在子查询下推上，TPC-H 基准中完全下推的查询从原来的 12 条增加到 16 条（共 22 条）。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a7cae8d72cc9&quot;}" data-wp-interactive="core/image" data-wp-key="6a7cae8d72cc9" class="wp-block-image size-large aligncenter wp-lightbox-container"><img fetchpriority="high" decoding="async" width="1200" height="629" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/bc616a93cd9924ca964facceb5073a51_header.webp" alt="pg_clickhouse 子查询下推：最慢查询从 32 秒压到 37 毫秒" class="wp-image-4544" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/bc616a93cd9924ca964facceb5073a51_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/bc616a93cd9924ca964facceb5073a51_header-300x157.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/bc616a93cd9924ca964facceb5073a51_header-1024x537.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/bc616a93cd9924ca964facceb5073a51_header-768x403.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：ClickHouse</figcaption></figure>





<h2 class="wp-block-heading">一条查询从 32 秒压到 37 毫秒</h2>



<p class="wp-block-paragraph">本次更新的最大看点是一条被称为「奖杯查询」的相关子查询（TPC-H 的 Q17）。这条查询要按零件计算平均的 l_quantity，在规模因子 1 的数据集下，旧方案需要针对 600 万行逐一在本地求值，耗时约 32.7 秒；改为完全下推后只需 37 毫秒，差距达到三个数量级，约为 880 倍。</p>



<p class="wp-block-paragraph">更有意思的是，原生 PostgreSQL 跑同一条查询约需 2.1 秒，而完全下推后的 pg_clickhouse 反而更快。其余几条的提升同样明显：Q2 从 3446 毫秒降到 24 毫秒，Q22 从 1415 毫秒降到 45 毫秒。</p>



<h2 class="wp-block-heading">子查询是怎么被下推的</h2>



<p class="wp-block-paragraph">新版本的相关子查询路径会把子查询翻译成 ClickHouse 一侧的半连接或反连接，要求服务端 ClickHouse 版本在 25.8 及以上。规划器不再把子查询留作「逐行执行的 SubPlan」，而是直接折叠成连接，从而把计算交给 ClickHouse 完成。</p>



<p class="wp-block-paragraph">这一能力并非凭空而来：早在 2025 年 12 月，pg_clickhouse 就教会规划器把整条相关 EXISTS 子查询作为单次 LEFT SEMI JOIN 下推，而不是「外层每行一次 ClickHouse 往返」的嵌套循环，当时一举把完全下推查询从 3 条提升到 12 条。</p>



<h2 class="wp-block-heading">驱动重写与更多下推覆盖</h2>



<p class="wp-block-paragraph">v0.10 用 ClickHouse 的纯 C 客户端库重写了二进制驱动，大结果改为分块流式传输，并新增压缩与 TLS 控制；并发的外部扫描各自使用独立连接，修掉了此前驱动里的几个并发缺陷。</p>



<p class="wp-block-paragraph">与此同时，能够被下推的函数与聚合数量翻了一倍以上，覆盖了统计聚合、有序集聚合、分区级聚合，以及更多日期运算与字符串函数。</p>



<h2 class="wp-block-heading">仍是 ClickHouse 的 Postgres 策略一环</h2>



<p class="wp-block-paragraph">pg_clickhouse 于 2025 年 12 月推出，是 ClickHouse 面向 PostgreSQL 用户策略的一部分：在不迁移数据库的前提下，保留 PostgreSQL 这一应用层接口，把繁重的分析执行交给 ClickHouse。其托管的 PostgreSQL 服务于 2026 年 5 月进入公测。</p>



<p class="wp-block-paragraph">商业化层面，ClickHouse 在 2026 年 1 月完成 4 亿美元 D 轮融资，客户数已超过 4000 家，年化收入约 2.5 亿美元。</p>



<p class="wp-block-paragraph">目前仍有 6 条 TPC-H 查询（Q13、Q15、Q16、Q18、Q20、Q21）尚未完全下推，这将是下一批子查询下推工作的重点。</p>



<p class="has-small-font-size wp-block-paragraph">来源：ClickHouse 官方博客（经 Hacker News 转载）</p>

]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
