Skip to main content
This section contains tips and best practices for improving performance with ClickHouse. We recommend users read Core Concepts as a precursor to this section, which covers the main concepts required to improve performance.

PREWHERE optimization

How PREWHERE reduces I/O by filtering data before reading unnecessary columns, and how to monitor its effectiveness.

Allocation profiling

Profile memory allocations with jemalloc.

Allocation profiling for versions before 25.9

Allocation profiling for ClickHouse versions before 25.9.

Caches

Cache types, including the query cache, query condition cache, and userspace page cache.

Data skipping indexes

Understanding data skipping indexes, with examples.

Lazy materialization

Defer reading column data until it is actually needed.

Troubleshooting

Debugging memory issues, testing your hardware, and the sampling query profiler.
Last modified on July 10, 2026