ClickHouse Release 25.10

The ClickHouse Team
19 min readintermediate
--
View Original

Overview

ClickHouse version 25.10 introduces significant enhancements, including 20 new features, 30 performance optimizations, and 103 bug fixes. Key improvements focus on join performance optimizations, a new QBit data type for vector search, and SQL syntax enhancements.

What You'll Learn

1

How to optimize JOIN performance using lazy columns replication

2

Why Bloom filters improve JOIN efficiency in ClickHouse

3

How to implement QBit data type for vector search in ClickHouse

4

How to enable automatic column statistics for MergeTree tables

Key Questions Answered

What are the main features introduced in ClickHouse version 25.10?
ClickHouse version 25.10 introduces 20 new features, including lazy columns replication for JOINs, Bloom filters for optimizing joins, a new QBit data type for vector search, and automatic column statistics for MergeTree tables. These enhancements aim to improve performance and usability.
How does lazy columns replication improve JOIN performance?
Lazy columns replication reduces CPU and memory usage by avoiding the replication of identical values during JOINs. This optimization allows ClickHouse to maintain a compact index column that points to the original non-replicated column, significantly speeding up queries.
What is the impact of Bloom filters on JOIN operations?
Bloom filters enhance JOIN performance by filtering rows based on join key values before the actual join occurs. This pre-filtering reduces the amount of data processed, leading to faster query execution times and lower memory usage.
How can I use the new QBit data type in ClickHouse?
The QBit data type allows for vector embeddings with adjustable search precision at runtime. Users can define the precision level during query time, enabling more flexible and efficient vector search operations.

Key Statistics & Figures

Performance improvement with lazy columns replication
20× faster
This improvement was observed during self-join queries where CPU and memory usage were significantly reduced.
Memory usage reduction with runtime pre-filtering
nearly 7× less memory
This reduction was achieved while processing the same dataset with Bloom filters enabled.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Key Actionable Insights

1
Implement lazy columns replication in your JOIN queries to optimize performance.
This feature can significantly reduce CPU and memory usage, especially in scenarios where large columns are involved, leading to faster query execution.
2
Utilize Bloom filters in JOINs to enhance query efficiency.
By enabling runtime filtering, you can skip irrelevant rows early in the process, which can lead to substantial performance improvements in large datasets.
3
Adopt the QBit data type for your vector search requirements.
This new data type allows you to fine-tune search precision, which can be crucial for applications requiring varying levels of accuracy in vector searches.
4
Enable automatic column statistics for MergeTree tables to improve query planning.
Keeping statistics up to date automatically helps ClickHouse make better decisions during query execution, reducing runtime and memory usage.

Common Pitfalls

1
Neglecting to enable new performance optimizations can lead to inefficient queries.
Without utilizing features like lazy columns replication or Bloom filters, you may experience slower query performance and higher resource consumption.

Related Concepts

Join Optimization Techniques
Vector Search Methodologies
Database Performance Tuning