Колоночное хранение / аналитика
Oracle
-- Database In-Memory: keep the table in memory in columnar format
ALTER TABLE sale INMEMORY;
-- With priority and compression:
ALTER TABLE sale INMEMORY PRIORITY HIGH
MEMCOMPRESS FOR QUERY HIGH;Oracle Database In-Memory (12.1.0.2+) ускоряет аналитические запросы, держа таблицы в памяти в колоночном формате (In-Memory Column Store, IM) и сохраняя строковый формат на диске (dual format). INMEMORY — отдельно лицензируемая опция. Параметр inmemory_size задаёт размер области IM.
PostgreSQL
-- Core PostgreSQL is row-based; columnar storage needs an extension:
-- Citus columnar access method:
CREATE EXTENSION IF NOT EXISTS citus;
CREATE TABLE sale_columnar (...) USING columnar;
-- Alternatives: the Hydra/cstore_fdw extensions.Базовый PostgreSQL предлагает только строковое (heap) хранение. Для колоночного хранения используются метод доступа 'columnar' в Citus (USING columnar), Hydra или старые расширения cstore_fdw; они дают сжатие и скорость сканирования для аналитики/хранилищ данных.
MySQL
-- Not applicable: core InnoDB does not offer columnar storage.
-- For analytics: MySQL HeatWave (cloud, in-memory columnar)
-- or integration with external ClickHouse/Apache Doris.Стандартный MySQL (InnoDB) строковый, встроенного columnstore нет. Для ускорения аналитики используется MySQL HeatWave (колоночный in-memory ускоритель в Oracle Cloud); в локальных развёртываниях обычно применяют внешние колоночные движки вроде ClickHouse или Apache Doris.
SQL Server
-- Clustered columnstore index (for analytic tables):
CREATE CLUSTERED COLUMNSTORE INDEX cci_sale ON dbo.sale;
-- Nonclustered columnstore on a rowstore table (HTAP):
CREATE NONCLUSTERED COLUMNSTORE INDEX ncci_sale
ON dbo.sale (city, product, amount, created_at);Колоночные индексы (columnstore) SQL Server (некластерный только для чтения в 2012; обновляемый кластерный в 2014; обновляемый некластерный в 2016) хранят данные по столбцам с высоким сжатием; в batch mode дают большое ускорение аналитических запросов с агрегацией/сканированием. Кластерный подходит для хранилищ данных, некластерный — для HTAP.
MongoDB
-- Not applicable: MongoDB is document (row-like) based.
-- For analytics: dedicated Analytics Nodes in Atlas
-- or export to a columnar format ($out)/an external engine.MongoDB хранит документы как строкоподобный BSON; встроенного колоночного (columnstore) хранения нет. Для аналитических нагрузок используются выделенные Analytics Nodes в наборе реплик Atlas, Atlas Data Federation или выгрузка данных в колоночную систему (напр. Parquet).
Redis
-- Not applicable: there is no concept of columnar storage.Redis — хранилище ключ-значение в памяти; различия строкового/колоночного хранения нет. Аналитические агрегации выполняются специальными структурами вроде Sorted Set, HyperLogLog (приблизительный подсчёт) или RedisTimeSeries; для крупномасштабного OLAP не подходит.
Elasticsearch
# doc_values: fields are stored column-wise on disk (enabled by default).
# Required for sorting/aggregation; active on non-text fields.
PUT sale
{ "mappings": { "properties":
{ "amount": { "type": "double", "doc_values": true } } } }Для сортировки и агрегаций Elasticsearch хранит поля в дисковой колоночной структуре doc_values (по умолчанию включена для полей numeric/keyword/date). Такая колоночная раскладка ускоряет аналитические запросы/агрегации; для полей text по умолчанию отключена.