Skip to content
Opensource internals
  • Posts

Performance

How ClickHouse Parses CSV in Parallel

Oct 22, 2026 17 min read Jay Hubbert

ClickHouse splits CSV into row-aligned chunks with a quote-aware scanner, parses them on separate threads, and reorders them with a ticket ring.

ClickhouseInternalsCsvParallelismPerformance

Read more →

How ClickHouse Resolves a Scalar Function Call

Oct 22, 2026 30 min read Jay Hubbert

ClickHouse’s function factory: static registration, alias maps, and a declarative signature DSL for overload resolution.

ClickhouseInternalsSQLPerformance

Read more →

How ClickHouse Runs UNION, INTERSECT and EXCEPT

Oct 22, 2026 14 min read Jay Hubbert

UNION ALL merges streams, UNION DISTINCT adds a hash DISTINCT with a self-abandoning preliminary pass, and INTERSECT/EXCEPT filter the left side through a set of the right.

ClickhousePerformanceInternalsSet operationsDistinct

Read more →

How ClickHouse Stores Dictionaries in Sharded Hash Tables

Oct 22, 2026 17 min read Jay Hubbert

The hashed dictionary packs keys compactly, shards the table for parallel loading, and picks its hash table by measured memory footprint.

ClickhouseDictionariesInternalsMemoryPerformance

Read more →

How ClickHouse Writes the Native Format, Column at a Time

Oct 22, 2026 14 min read Jay Hubbert

The Native format writes a row count, then for each column its name, type, serialization kind and bulk data — never a row.

ClickhouseInternalsFormatsSerializationPerformance

Read more →

← Newer Page 9 of 17 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·