Why a Columnar Analytics Engine Does Not Play by These Rules
Everything in this path assumes a row store: rows kept together in pages, with B-tree indexes to find a few of them. Columnar analytics engines such as BigQuery, Snowflake, ClickHouse and DuckDB store each column separately, compress it, and are built to read a lot of it fast, so they often have no B-tree indexes at all and tune instead with partitioning, clustering or sort keys and by selecting fewer columns. Knowing which kind of engine you are on tells you whether 'add an index' is even a sentence that means something there.
Questions this Concept answers
- Why do such engines often have no B-tree indexes at all?
Columnar Storage in Analytical Databases and Why Column Layout Cuts Bytes Read per Query
Row-oriented storage places all fields of one record contiguously, whereas columnar storage places all values of one field contiguously; this single layout choice determines which bytes a query must …