← Voltar ao blog
MariaDB 22 de outubro de 2026 5 min de leitura

MariaDB ColumnStore: banco colunar para análise sem sair do SQL

O ColumnStore guarda os dados por coluna, comprime muito e acelera relatórios em tabelas gigantes, usando o mesmo SQL do MariaDB.

MariaDB ColumnStore: banco colunar para análise sem sair do SQL

Num armazém organizado por pedido, montar um pedido é fácil. Mas contar quantas caixas azuis existem exige abrir todos os pedidos. Num armazém organizado por tipo de produto, é só olhar uma prateleira. Isso é armazenamento colunar.

Este artigo faz parte da série MariaDB além do MySQL: dez recursos que existem no MariaDB e não existem no MySQL Community. Exemplos escritos para MariaDB 11.4 LTS (e 11.7+ quando indicado), comparados com MySQL 8.4 LTS.

Linha versus coluna

InnoDB (linha)                         ColumnStore (coluna)
[1|Ana  |SP|150.00]                    id:     [1|2|3|...]
[2|Bruno|RJ| 80.00]                    nome:   [Ana|Bruno|Carla|...]
[3|Carla|SP|300.00]                    uf:     [SP|RJ|SP|...]      ← comprime muito
                                       valor:  [150|80|300|...]
SELECT SUM(valor) lê TODAS as colunas  SELECT SUM(valor) lê SÓ a coluna valor

Para OLTP (buscar um cliente, gravar um pedido), linha ganha. Para OLAP (somar, agrupar e filtrar milhões de linhas), coluna ganha de lavada: lê menos disco, comprime melhor e processa em paralelo.

Na prática

-- Pacote: mariadb-plugin-columnstore
CREATE TABLE vendas_fato (
  data_venda DATE,
  loja_id    INT,
  produto_id INT,
  qtd        INT,
  valor      DECIMAL(12,2)
) ENGINE = ColumnStore;

-- Carga em massa (bem mais rápida que INSERT linha a linha)
LOAD DATA LOCAL INFILE '/dados/vendas_2026.csv'
  INTO TABLE vendas_fato FIELDS TERMINATED BY ',';

SELECT loja_id, YEAR(data_venda) ano, SUM(valor) total
  FROM vendas_fato
 GROUP BY loja_id, ano
 ORDER BY total DESC;

A grande sacada: InnoDB e ColumnStore no mesmo servidor, com JOIN entre eles. O cadastro fica em InnoDB, a tabela de fatos em ColumnStore.

Quando não usar

  • Muitos UPDATEs e DELETEs pequenos: o ColumnStore não foi feito para isso.
  • Consultas que buscam uma linha pela chave: InnoDB é melhor.
  • Poucos milhões de linhas: InnoDB com bons índices costuma dar conta.

E no MySQL?

O MySQL Community não tem engine colunar. A Oracle oferece o HeatWave, que é um serviço de nuvem pago. No MariaDB, o ColumnStore é open source e roda na sua máquina.

A série completa: MariaDB além do MySQL

Ainda decidindo entre os dois? Leia MySQL ou MariaDB: qual é o melhor? e o guia definitivo de MySQL.

Quer dominar a base que os dois compartilham?

MariaDB nasceu do MySQL, e tudo o que é fundamento (modelagem, índices, transações, replicação, otimização) vale para os dois. É isso que eu ensino no livro Aprendendo MySQL: Prática, Teoria, Laboratórios, Desafios e Projetos: 292 páginas, 10 laboratórios guiados, 277 exercícios e 4 desafios com gabarito, e uma máquina virtual pronta para você quebrar (e consertar) à vontade.

Conheça o livro e leia a degustação gratuita.

Bora trocar ideia?

Se este artigo te ajudou (ou te fez discordar, que também vale), me siga no LinkedIn e no Instagram. Lá eu posto bastidores de banco de dados, história da computação e histórias de produção que ninguém conta em curso oficial.


Sobre o autor: Alexandre Almeida atua com bancos de dados há mais de 25 anos, foi instrutor oficial de MySQL e Oracle para mais de 1.000 alunos e escreveu Aprendendo MySQL: Prática, Teoria e Laboratórios.

Fontes: MariaDB Server Documentation (MariaDB Knowledge Base), notas de release do MariaDB Server, MySQL 8.4 Reference Manual. Imagem de capa: ilustração gerada por IA (corredor de armazém com prateleiras altas organizadas em colunas).