Almacenamiento columnar / analítica
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+) acelera las consultas analíticas manteniendo las tablas en memoria en formato columnar (In-Memory Column Store, IM) y conservando el formato de filas en disco (formato dual). INMEMORY es una opción con licencia aparte. El parámetro inmemory_size dimensiona el área 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 básico solo ofrece almacenamiento por filas (heap). Para almacenamiento columnar se usan el access method 'columnar' de Citus (USING columnar), Hydra o la antigua extensión cstore_fdw; proporcionan compresión y velocidad de recorrido para cargas de analítica/data warehouse.
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 estándar (InnoDB) es por filas y no tiene un columnstore integrado. Para acelerar la analítica se usa MySQL HeatWave (un acelerador columnar en memoria en Oracle Cloud); las soluciones on-premises suelen usar motores columnares externos como ClickHouse o 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);Los índices columnstore de SQL Server (nonclustered de solo lectura en 2012; clustered actualizables en 2014; nonclustered actualizables en 2016) almacenan los datos por columnas con alta compresión; con batch mode aceleran mucho las consultas analíticas con mucha agregación/recorrido. Clustered es adecuado para data warehouses y nonclustered para 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 almacena los documentos como BSON orientado a filas; no hay almacenamiento columnar (columnstore) integrado. Para cargas analíticas se usan Analytics Nodes dedicados en un replica set de Atlas, Atlas Data Federation o la exportación de datos a un sistema columnar (p. ej., Parquet).
Redis
-- Not applicable: there is no concept of columnar storage.Redis es un almacén clave-valor en memoria; no existe la distinción entre almacenamiento por filas o columnas. Las agregaciones analíticas se hacen con estructuras especiales como Sorted Set, HyperLogLog (recuento aproximado) o RedisTimeSeries; no es adecuado para OLAP a gran escala.
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 } } } }Para ordenaciones y agregaciones, Elasticsearch mantiene los campos en una estructura columnar en disco llamada doc_values (habilitada por defecto en campos numeric/keyword/date). Esta disposición columnar acelera las consultas analíticas/de agregación; está deshabilitada por defecto en los campos text.