В чем разница между реляционной и колоночной базой данных

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

Ответ

Реляционные БД хранят данные в таблицах с фиксированными строками и столбцами, где каждая строка — запись, а столбец — поле. Оптимизированы для сложных запросов с JOIN. Пример: PostgreSQL, MySQL.

Колоночные БД хранят данные по столбцам, а не строкам. Каждый столбец — отдельный файл. Эффективны для аналитики и агрегации больших данных, но хуже для частых записей. Пример: ClickHouse, Cassandra.

// Реляционная БД (SQL запрос)
db.Query("SELECT name, age FROM users WHERE age > 30")

// Колоночная БД (оптимизирована для сканирования столбцов)
// Читает только столбец 'age', затем 'name' для подходящих строк

Ключевые различия:

  • Хранение: строки vs колонки
  • Оптимизация: OLTP vs OLAP
  • Скорость: записи vs чтения