Todos os produtos
Search
Central de documentação

PolarDB:Use os atributos estendidos de um IMCI para personalizar o IMCI

Última atualização: Jun 28, 2026

Um In-Memory Column Index (IMCI) oferece vários atributos estendidos que permitem ajustar o tamanho do grupo de linhas, a compactação, a ordem de classificação, os índices de poda e o comportamento de escrita. Defina esses atributos no comentário da tabela durante a criação, usando a sintaxe COLUMNAR=1 <optName>=<optValue>.

Atributos estendidos

pack_shift

Controla o tamanho do grupo de linhas dos dados do IMCI e afeta diretamente a quantidade de dados residente na memória. Ajuste esse parâmetro ao trabalhar com muitas tabelas ou tabelas particionadas.

  • Valores válidos: Inteiro de 6 a 18

  • Default: Valor do parâmetro loose_imci_default_pack_shift

Para visualizar ou alterar o parâmetro loose_imci_default_pack_shift, consulte Parâmetros relacionados ao IMCI. Para configurá-lo no console do PolarDB, consulte Especificar parâmetros de cluster e nó.

codec_opt

Define o algoritmo de compactação dos dados do IMCI. Cada algoritmo adequa-se a características específicas: dados de séries temporais, colunas de baixa cardinalidade e cargas de trabalho de uso geral beneficiam-se de escolhas diferentes. Para obter a lista completa de algoritmos compatíveis e orientações sobre como selecionar o mais adequado aos seus dados, consulte Definir um algoritmo de compactação.

order_key

Define uma chave de ordenação para o IMCI. Ordenar dados por colunas frequentemente filtradas permite que o mecanismo ignore grupos de linhas irrelevantes durante varreduras, o que melhora significativamente o desempenho das consultas. Para detalhes de configuração, consulte Configurar chaves de ordenação para IMCIs.

pruner / pruner_minmax / pruner_bloom

Controla a criação de índices secundários em colunas de string para ignorar dados durante varreduras. Há dois tipos de índice disponíveis:

Tipo de índice

Mais indicado para

pruner_minmax

Consultas de intervalo (>, <, BETWEEN) em colunas com valores ordenáveis

pruner_bloom

Consultas de igualdade e listas IN em colunas de string com muitos valores distintos

Use ambos em conjunto nas colunas de string para abranger diferentes padrões de consulta.

No PolarDB for MySQL 8.0.1.1.35 ou posterior, índices minmax e filtros Bloom são criados por padrão em colunas de string.

Para obter detalhes completos de configuração, consulte Otimização de IMCI para consultas estatísticas.

prefix_len

Define o comprimento do prefixo, em bytes, para pruners minmax em colunas de string. Um prefixo menor reduz o tamanho do índice, mas pode diminuir a eficácia da poda em strings longas.

  • Valores válidos: Inteiro de 1 a 255

  • Padrão: 20

Para obter detalhes sobre a criação de índices minmax durante a criação de uma tabela, consulte a seção Criar índices minmax ao criar uma tabela em Otimização de IMCI para consultas estatísticas.

write_policy

Controla como os dados do IMCI são gravados nos arquivos de armazenamento. Essa configuração afeta tanto o uso de espaço em disco quanto o desempenho de E/S de escrita.

Valor

Nome

Eficiência de espaço

Quando usar

0

ForCapacity

Mais alta — máx. de 1 fragmento de 4 KB por escrita; prioriza o espaço de armazenamento e divide os dados em vários arquivos para minimizar a fragmentação

Armazenamento limitado e necessidade de minimizar fragmentação

1

ForPerformance

Mais baixa — máxima fragmentação e desperdício de espaço; cada escrita vai para um arquivo chamado ExtentSize para obter o melhor desempenho de E/S

Throughput de E/S é a principal prioridade e o espaço de armazenamento não é limitado

2

Skip4K

Alta — máx. de 1 fragmento de 16 KB por escrita; baseado em Page Free Space (PFS); quando os dados gravados excedem 4 KB, a extensão de 4 KB é ignorada

Cargas de trabalho equilibradas em que o alinhamento de 16 KB atende aos requisitos de desempenho

3

Tradeoff

Moderada — tem prioridade maior que Skip4K; comporta-se como ForPerformance para escritas abaixo de 1 MB; divide entre arquivos em 1 MB ou mais

Tamanhos de escrita mistos em que lotes grandes devem ser eficientes em espaço

  • Default: Valor do parâmetro loose_imci_default_write_policy, que aceita os mesmos valores (0–3)

Para visualizar ou alterar o parâmetro loose_imci_default_write_policy no console do PolarDB, consulte Especificar parâmetros de cluster e nó.

Definir atributos estendidos

Especifique os atributos estendidos na cláusula COMMENT ao criar uma tabela. Use o formato COLUMNAR=1 <optName>=<optValue>, separando múltiplos atributos por espaços.

Sintaxe

CREATE TABLE lineitem COMMENT "COLUMNAR=1 <optName>=<optValue>";

Parâmetro

Descrição

optName

Nome do atributo estendido. Por exemplo, pack_shift.

optValue

Valor do atributo estendido.

Exemplo

O exemplo a seguir cria a tabela lineitem como uma tabela columnstore com pack_shift definido como 10:

CREATE TABLE lineitem (
  l_orderkey       INTEGER NOT NULL,
  l_partkey        INTEGER NOT NULL,
  l_suppkey        INTEGER NOT NULL,
  l_linenumber     INTEGER NOT NULL,
  l_quantity       DECIMAL(15,2) NOT NULL,
  l_extendedprice  DECIMAL(15,2) NOT NULL,
  l_discount       DECIMAL(15,2) NOT NULL,
  l_tax            DECIMAL(15,2) NOT NULL,
  l_returnflag     CHAR(1) NOT NULL,
  l_linestatus     CHAR(1) NOT NULL,
  l_shipdate       DATE NOT NULL,
  l_commitdate     DATE NOT NULL,
  l_receiptdate    DATE NOT NULL,
  l_shipinstruct   CHAR(25) NOT NULL,
  l_shipmode       CHAR(10) NOT NULL,
  l_comment        VARCHAR(44) NOT NULL
) COMMENT "COLUMNAR=1 pack_shift=10";

Para definir múltiplos atributos, anexe cada par <optName>=<optValue> separado por espaço dentro da mesma string de comentário.