Spaltenorientierte Speicherung und OLAP
Kurz: Spaltenorientierte Datenbanken speichern Werte einer Spalte zusammen statt Zeile für Zeile. Das beschleunigt Auswertungen über viele Zeilen enorm und lässt sich sehr gut komprimieren.
Genauer: OLTP-Systeme (Bestellungen, Buchungen) lesen und ändern einzelne Zeilen, dafür ist Zeilenspeicherung ideal. OLAP-Systeme (Berichte, Analysen) summieren wenige Spalten über Millionen Zeilen, dort liest Spaltenspeicherung nur die nötigen Daten.
Im Detail
- Kompression: Gleichartige Werte nebeneinander lassen sich stark packen (Run-Length, Wörterbuch).
- Vektorisierte Verarbeitung: CPU verarbeitet Blöcke von Werten mit SIMD.
- Beispiele: ClickHouse, DuckDB, BigQuery, Parquet-Dateien.
- Data Warehouse: Zentrale Sammlung aus mehreren Quellen für Auswertungen.
- ETL/ELT: Daten extrahieren, transformieren, laden.
- Nachteil: Einzelne Zeilen ändern oder komplett lesen ist langsamer.
Siehe auch: B-Baum und B+-Baum, Abfrageplaner und EXPLAIN