Зачем нужны колоночные БД

«Зачем нужны колоночные БД» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Колоночные БД хранят данные не по строкам, а по столбцам. Это дает несколько преимуществ:

  1. Эффективность для аналитики – при запросах с агрегациями (SUM, AVG) читаются только нужные столбцы, а не вся строка.

  2. Сжатие данных – однотипные данные в колонке сжимаются лучше, чем в строке.

  3. Оптимизация для OLAP – идеально подходят для обработки больших объемов данных, где редко обновляются записи, но часто анализируются.

Пример (ClickHouse):

-- Создание таблицы с колоночным хранением
CREATE TABLE analytics (
    date Date,
    user_id UInt32,
    revenue Float64
) ENGINE = MergeTree()
ORDER BY date;

Минусы: хуже для частых вставок/обновлений (OLTP), так как модификация затрагивает все колонки.