Ответ
Колоночные БД хранят данные не по строкам, а по столбцам. Это дает несколько преимуществ:
-
Эффективность для аналитики – при запросах с агрегациями (SUM, AVG) читаются только нужные столбцы, а не вся строка.
-
Сжатие данных – однотипные данные в колонке сжимаются лучше, чем в строке.
-
Оптимизация для OLAP – идеально подходят для обработки больших объемов данных, где редко обновляются записи, но часто анализируются.
Пример (ClickHouse):
-- Создание таблицы с колоночным хранением
CREATE TABLE analytics (
date Date,
user_id UInt32,
revenue Float64
) ENGINE = MergeTree()
ORDER BY date;
Минусы: хуже для частых вставок/обновлений (OLTP), так как модификация затрагивает все колонки.