Course · self-paced

ClickHouse Philosophy

How ClickHouse is different, domain by domain. Each property mapped to the problem it answers, with comparison matrices against other systems — where it excels, what it trades away, and when something else fits better.

Modules
6
Level
Intermediate
Status
Open

Why ClickHouse behaves the way it does. Each module takes one domain, names the property that governs it, and shows the problem that property was built to answer — then puts it next to PostgreSQL, Elasticsearch and Snowflake, so you know when ClickHouse is the right tool and when it is not.

6 domains

  1. 01 · STORAGE

    Columnar parts

    Answers: scanning billions of rows while reading only what the query needs.

    Read the module →
  2. 02 · INDEXING

    Sparse index & granules

    Answers: skipping data without an index as large as the table.

    Coming later
  3. 03 · EXECUTION

    Vectorized pipelines

    Answers: keeping every core busy on one query.

    Coming later
  4. 04 · INGESTION

    Inserts as parts

    Answers: high write throughput — and why many tiny inserts hurt.

    Coming later
  5. 05 · CHANGE

    Mutations & merges

    Answers: updating immutable data, and what it costs.

    Coming later
  6. 06 · DISTRIBUTION

    Replication & shards

    Answers: scaling out, and what Keeper coordinates.

    Coming later

The comparison matrix

A sample. Every module ends with its own row set.

PropertyClickHousePostgreSQLElasticsearchSnowflake
Storage layoutColumnar parts (MergeTree)Row heapInverted index + doc valuesColumnar micro-partitions
Primary indexSparse, one mark per granuleDense B-tree, one entry per rowInverted index per termNone; min/max pruning
Updating a rowMutation rewrites partsCheap, MVCC row versionDelete + reindex documentDML rewrites micro-partitions
DeploymentSelf-hosted or managedSelf-hosted or managedSelf-hosted or managedManaged only