Pular para o conteúdo principal
O motor de tabela (tipo de tabela) determina:
  • Como e onde os dados são armazenados, para onde gravá-los e de onde lê-los.
  • Quais consultas são suportadas e como.
  • O acesso concorrente aos dados.
  • O uso de índices, se houver.
  • Se a execução multithread de requisições é possível.
  • Os parâmetros de replicação de dados.

Famílias de motores

MergeTree

Os motores de tabela mais universais e funcionais para tarefas de alta carga. A característica comum desses motores é a inserção rápida de dados, seguida pelo processamento de dados em segundo plano. Os motores da família MergeTree oferecem suporte à replicação de dados (com versões Replicated* dos motores), particionamento, índices secundários de data-skipping e outros recursos não disponíveis em outros motores. Motores da família:

Log

motores leves com funcionalidade mínima. São mais eficazes quando você precisa gravar rapidamente muitas tabelas pequenas (até aproximadamente 1 milhão de linhas) e depois lê-las por completo. Motores da família:

Motores de integração

Motores para se comunicar com outros sistemas de armazenamento e processamento de dados. Motores desta família:

Motores especiais

Motores da família:

Colunas virtuais

Uma coluna virtual é um atributo inerente ao motor de tabela, definido no código-fonte do motor. Você não deve especificar colunas virtuais na consulta CREATE TABLE, e não pode vê-las nos resultados das consultas SHOW CREATE TABLE e DESCRIBE TABLE. As colunas virtuais também são somente leitura, portanto você não pode inserir dados nelas. Para selecionar dados de uma coluna virtual, você deve especificar seu nome na consulta SELECT. SELECT * não retorna valores de colunas virtuais. Se você criar uma tabela com uma coluna que tenha o mesmo nome de uma das colunas virtuais da tabela, essa coluna virtual ficará inacessível. Não recomendamos fazer isso. Para ajudar a evitar conflitos, os nomes de colunas virtuais geralmente começam com um sublinhado.
  • _table — Contém o nome da tabela da qual os dados foram lidos. Tipo: String. Independentemente do motor de tabela usado, cada tabela inclui uma coluna virtual universal chamada _table. Ao consultar uma tabela com o motor de tabela Merge, você pode definir condições constantes em _table na cláusula WHERE/PREWHERE (por exemplo, WHERE _table='xyz'). Nesse caso, a operação de leitura é realizada apenas nas tabelas em que a condição em _table é satisfeita, portanto a coluna _table atua como um índice. Ao usar consultas no formato SELECT ... FROM (... UNION ALL ...), é possível determinar de qual tabela real as linhas retornadas se originam especificando a coluna _table.
Última modificação em 10 de junho de 2026