Todos os produtos
Search
Central de documentação

PolarDB:Criar IMCIs ao criar uma tabela

Última atualização: Jun 28, 2026

Ao criar uma tabela no PolarDB for MySQL, ative índices de coluna em memória (IMCIs) durante a criação adicionando COLUMNAR=1 ao campo COMMENT. Essa abordagem evita a sobrecarga de executar ALTER TABLE em tabelas grandes posteriormente. O PolarDB for MySQL oferece suporte a três variantes de CREATE TABLE, cada uma com comportamentos diferentes para IMCI.

Pré-requisitos

Antes de começar, verifique se você possui:

Funcionamento da criação de IMCI nas variantes de CREATE TABLE

Todos os três métodos utilizam a anotação COLUMNAR=1 no campo COMMENT. A tabela abaixo resume o escopo e as limitações de cada método para ajudar na escolha da opção adequada antes da escrita da instrução DDL.

Método

Escopo do IMCI

Suporte a IMCI por coluna

CREATE TABLE

Coluna única ou todas as colunas

Sim

CREATE TABLE LIKE

Herdado da tabela source (automático)

Não aplicável

CREATE TABLE ... SELECT

Apenas todas as colunas

Não

Criar um IMCI com CREATE TABLE

Adicione COLUMNAR=1 ao campo COMMENT de uma coluna específica para indexá-la ou adicione-o ao COMMENT no nível da tabela para indexar todas as colunas suportadas simultaneamente.

Indexar colunas específicas:

CREATE TABLE t1(
  col1 INT COMMENT 'COLUMNAR=1',
  col2 DATETIME COMMENT 'COLUMNAR=1',
  col3 VARCHAR(200)
) ENGINE InnoDB;

Esse comando cria IMCIs em col1 e col2. A coluna col3 não possui IMCI.

Indexar todas as colunas:

CREATE TABLE t2(
  col1 INT,
  col2 DATETIME,
  col3 VARCHAR(200)
) ENGINE InnoDB COMMENT 'COLUMNAR=1';

Essa ação cria IMCIs em todas as colunas cujos tipos de dados oferecem suporte — neste caso, col1, col2 e col3.

COLUMNAR não diferencia maiúsculas de minúsculas. Nenhum delimitador é necessário entre COLUMNAR=1 e qualquer conteúdo existente no COMMENT , e a anotação não afeta esse conteúdo existente.

Tipos de dados suportados

É possível criar IMCIs na maioria dos tipos de dados de coluna. Os tipos a seguir receberam suporte em versões específicas do PolarDB for MySQL:

Tipo de dado

Versão mínima

BLOB, TEXT

8.0.1.1.25

ENUM

8.0.1.1.28

Tabelas particionadas

8.0.1.1.29

BIT, JSON, Geo

8.0.1.1.30

Não é possível criar IMCIs em colunas do tipo de dado SET.

Criar um IMCI com CREATE TABLE LIKE

Quando uma tabela source possui um IMCI, a tabela de destino herda automaticamente o mesmo IMCI — nenhuma anotação adicional é necessária.

-- If source_table has an IMCI, dest_table inherits the same IMCI.
CREATE TABLE dest_table LIKE source_table;

Criar um IMCI com CREATE TABLE ... SELECT

Adicione COLUMNAR=1 ao COMMENT no nível da tabela para criar IMCIs em todas as colunas da nova tabela, incluindo quaisquer colunas adicionadas posteriormente. Essa sintaxe não oferece suporte à criação de IMCI por coluna.

CREATE TABLE t3(
  col1 INT,
  col2 DATETIME,
  col3 VARCHAR(200)
) ENGINE InnoDB;

CREATE TABLE t4 COMMENT 'COLUMNAR=1' SELECT col1, col2 FROM t3;

A tabela t4 recebe IMCIs em col1, col2 e em quaisquer colunas adicionadas posteriormente.

Verificar a estrutura do IMCI

Execute SHOW CREATE TABLE <tablename> FULL para confirmar a criação dos IMCIs. O comando padrão SHOW CREATE TABLE mostra apenas a configuração do campo COMMENT — ele não exibe os detalhes do IMCI.

SHOW CREATE TABLE test.t2;

Saída — os detalhes do IMCI não são mostrados:

*************************** 1. row ***************************
       Table: t2
Create Table: CREATE TABLE `t2` (
  `col1` int(11) DEFAULT NULL,
  `col2` datetime DEFAULT NULL,
  `col3` varchar(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='COLUMNAR=1'
SHOW CREATE TABLE test.t2 FULL;

Saída — os detalhes do IMCI aparecem no campo COLUMNAR INDEX:

*************************** 1. row ***************************
       Table: t2
Create Table: CREATE TABLE `t2` (
  `col1` int(11) DEFAULT NULL,
  `col2` datetime DEFAULT NULL,
  `col3` varchar(200) DEFAULT NULL,
  COLUMNAR INDEX (`col1`,`col2`,`col3`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='COLUMNAR=1'

Próximos passos

  • Para adicionar IMCIs a tabelas existentes, consulte a documentação do ALTER TABLE.

  • Para gerenciar e monitorar IMCIs, consulte a visão geral de gerenciamento de IMCI.