Column-Oriented Database

A column-oriented database stores each column of a table contiguously on disk, instead of storing each row contiguously, which makes analytical aggregations dramatically faster and more compressible than in row-oriented databases.

Row-oriented storage is the right choice when most queries read or write a few full rows at a time, the OLTP pattern. Column-oriented storage is the right choice when most queries read a small number of columns across many rows, the OLAP pattern. The physical layout follows the workload.

Three properties fall out of the column layout: queries only pay for the columns they touch, compression ratios are high because adjacent values in a column tend to look alike, and vectorized execution can process batches of column values with SIMD instructions. Together these make scans an order of magnitude faster than the equivalent row-oriented scan.

ClickHouse®, Druid, Pinot, BigQuery, and Snowflake are all column-oriented. Tinybird is built on ClickHouse and inherits these properties for every data source.

Related terms

Where it shows up in Tinybird

Tinybird wordmark