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

MariaDB Vector: busca vetorial com índice HNSW para IA e RAG

O MariaDB guarda embeddings e encontra os vizinhos mais próximos com um índice vetorial. Dá para fazer busca semântica e RAG sem outro banco.

MariaDB Vector: busca vetorial com índice HNSW para IA e RAG

Olhando o céu, você não mede a distância de uma estrela para todas as outras para achar as vizinhas. Você olha para a região certa. Um índice vetorial HNSW faz isso com embeddings: pula direto para a vizinhança.

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.

Vetores em 30 segundos

Modelos de IA transformam texto, imagem ou áudio em listas de números (embeddings). Conteúdos parecidos geram vetores próximos. "Como resetar a senha" e "esqueci meu login" ficam vizinhos, mesmo sem nenhuma palavra em comum. Buscar por significado é buscar os vetores mais próximos.

pergunta ──▶ modelo de embedding ──▶ [0.12, -0.80, 0.33, ...]
                                          │
                       ┌──────────────────▼──────────────────┐
                       │ MariaDB: VECTOR INDEX (HNSW)        │
                       │ camadas de "atalhos" entre vizinhos │
                       └──────────────────┬──────────────────┘
                                          ▼
                           5 documentos mais parecidos ──▶ LLM (RAG)

Na prática (MariaDB 11.7+)

CREATE TABLE documentos (
  id        INT PRIMARY KEY AUTO_INCREMENT,
  titulo    VARCHAR(200),
  conteudo  TEXT,
  embedding VECTOR(1536) NOT NULL,
  VECTOR INDEX (embedding) M=8 DISTANCE=cosine
);

INSERT INTO documentos (titulo, conteudo, embedding)
VALUES ('Reset de senha', 'Para redefinir...', VEC_FromText('[0.12,-0.80,0.33, ...]'));

-- Os 5 mais próximos da pergunta
SELECT id, titulo
  FROM documentos
 ORDER BY VEC_DISTANCE_COSINE(embedding, VEC_FromText(@pergunta))
 LIMIT 5;

O ORDER BY ... LIMIT com a função de distância é o que faz o otimizador usar o índice. Sem índice, o banco compara com todas as linhas.

Por que no banco relacional?

  • Filtros e vetores juntos: "documentos parecidos, deste cliente, publicados este ano" numa consulta só.
  • Uma infraestrutura a menos: backup, réplica e permissões que você já conhece.
  • Transação: o texto e o embedding mudam juntos.

Cuidados

  • HNSW é aproximado: troca um pouco de precisão por muita velocidade.
  • O índice consome memória; acompanhe o mhnsw_max_cache_size.
  • A dimensão do VECTOR tem de ser a mesma do modelo de embedding.

E no MySQL?

O MySQL 9 Community introduziu o tipo VECTOR, mas sem índice vetorial e sem funções de distância na edição gratuita. A busca vetorial completa da Oracle fica no HeatWave, em nuvem. No MariaDB, tipo, funções e índice vêm no servidor open source.

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 (céu estrelado sobre um observatório com linhas ligando estrelas próximas).