
本文字数:8739;估计阅读时间:22 分钟
作者: ClickHouse Team
本文在公众号【ClickHouseInc】首发

新的一月,迎来全新版本!
发布概要
ClickHouse 25.4 带来了 25 项新功能 🌸 23 项性能优化 🦋 以及 58 个缺陷修复 🐝
此次更新引入了延迟物化(lazy materialization)、Apache Iceberg 的时光回溯功能、用于 EXISTS 子句的相关子查询(correlated subquery)等一系列重要特性。
新贡献者
热烈欢迎所有在 25.4 版本中首次提交的贡献者!ClickHouse 社区的持续壮大令人欣喜,我们始终感激所有推动项目不断发展的贡献者们。
以下是本次版本中的新贡献者名单:
Amol Saini, Drew Davis, Elmi Ahmadov, Fellipe Fernandes, Grigory Korolev, Jia Xu, John Doe, Luke Gannon, Muzammil Abdul Rehman, Nikolai Ryzhov, ParvezAhamad Kazi, Pavel Shutsin, Saif Ullah, Samay Sharma, Shahbaz Aamir, Sumit, Todd Yocum, Vladimir Baikov, Wudidapaopao, Xiaozhe Yu, arf42, cjw, felipeagfranceschini, krzaq, wujianchao5, zouyunhe
延迟物化(Lazy materialization)
贡献者:Xiaozhe Yu
延迟物化是 ClickHouse 推出的一项查询优化新特性,它可以将列数据的读取推迟到真正需要时再执行。在包含排序和 LIMIT 的 Top N 查询中,这项优化能让 ClickHouse 跳过大部分数据的加载,从而大幅降低 I/O 开销、内存消耗,并显著缩短运行时间。
来看一个真实场景中的例子:下面的查询会找出拥有最多“有帮助”投票数的 Amazon 用户评论,并返回排名前 3 条的标题、副标题和完整内容。
首先,我们在关闭延迟物化(并清空文件系统缓存)的情况下运行该查询:
SELECT helpful_votes, product_title, review_headline, review_body
FROM amazon.amazon_reviews
ORDER BY helpful_votes DESC
LIMIT 3
FORMAT Null
SETTINGS query_plan_optimize_lazy_materialization = false;
0 rows in set. Elapsed: 219.071 sec. Processed 150.96 million rows, 71.38 GB (689.08 thousand rows/s., 325.81 MB/s.)
Peak memory usage: 1.11 GiB.
然后,在再次清空文件系统缓存后,我们启用延迟物化,运行同一个查询:
SELECT helpful_votes, product_title, review_headline, review_body
FROM amazon.amazon_reviews
ORDER BY helpful_votes DESC
LIMIT 3
FORMAT Null
SETTINGS query_plan_optimize_lazy_materialization = true;
0 rows in set. Elapsed: 0.139 sec. Processed 150.96 million rows, 1.81 GB (1.09 billion rows/s., 13.06 GB/s.)
Peak memory usage: 3.80 MiB.
结果令人惊艳:性能提升了 1,576 倍!I/O 开销减少了 40 倍,内存占用降低了 300 倍。
查询相同、数据表相同、运行环境也相同

最低0.47元/天 解锁文章
1220

被折叠的 条评论
为什么被折叠?



