Spaltenorientierte Datenbank (englisch columnar database, Column-Store) speichert Tabellen spaltenweise statt zeilenweise: Alle Werte einer Spalte liegen zusammenhängend auf der Platte. Dadurch lesen Analytik-Workloads nur die benötigten Spalten und erreichen extreme Geschwindigkeit bei großen Datenmengen.

Zeilen- vs. Spaltenorientierung

Eine relationale Datenbank wie MySQL legt einen Datensatz als komplette Zeile ab — ideal für viele kleine Transaktionen (OLTP). Ein Column-Store schreibt dagegen spaltenweise. Ein SELECT über Millionen Zeilen, das nur drei von zwanzig Spalten braucht, liest beim Column-Store nur diese drei Spalten; die zeilenorientierte Variante muss jede Zeile komplett laden und die übrigen 17 Spalten verwerfen.

Vorteile und Techniken

  • Kompression: Gleiche oder ähnliche Werte liegen nebeneinander, dadurch starke Kompression (Lauflängen-, Delta-Kodierung) und weniger I/O.
  • Vektorisierung: Moderne CPUs verarbeiten spaltenweise Blöcke mit SIMD-Instruktionen in einem Zug.
  • Analytics: Aggregationen wie SUM, COUNT, GROUP BY über weite Bereiche sind die Kernstärke — typisch für OLAP und Business Intelligence.

Bekannte Systeme

ClickHouse (Open Source, ursprünglich von Yandex), Apache Druid, DuckDB, Amazon Redshift, Google BigQuery, Snowflake und Vertica. Auch das Dateiformat Apache Parquet speichert Daten spaltenorientiert.

Grenzen

Einzelne Zeilen schreiben oder aktualisieren ist aufwändiger und langsamer als in zeilenorientierten Systemen — Column-Stores sind daher keine erste Wahl für transaktionale Anwendungen. Viele Systeme kombinieren beide Welten (hybride Speicherung).

Verwandte Grundlagen: OLAP, Data Warehouse, Wide-Column-Store, NoSQL, Apache Airflow, dbt.