Todos os produtos
Search
Central de documentação

PolarDB:Limites

Última atualização: Jun 28, 2026

O recurso In-Memory Column Index (IMCI) acelera consultas de processamento analítico (AP) no PolarDB for MySQL. Antes de ativar o IMCI, revise os limites abaixo para garantir a compatibilidade do seu ambiente e das suas consultas.

Limites gerais

Restrição

Detalhes

Mecanismo de armazenamento

Apenas InnoDB. Índices columnstore não são suportados em tabelas que utilizam outros mecanismos de armazenamento.

Tabelas temporárias

Sem suporte. O IMCI não acelera consultas em tabelas temporárias.

Colunas virtuais

Suportado quando ambas as condições são atendidas: imci_enable_virtual_column está definido como ON e order_key não é especificado durante a criação do índice.

Colunas virtuais — Tipo Spatial

Sem suporte. Não é possível criar um índice columnstore em uma coluna virtual do tipo Spatial.

Multi-master Cluster (Limitless) Edition

Defina o parâmetro de cluster loose_polar_enable_imci_with_mm como ON e adicione um nó global somente leitura para o IMCI.

Nota

O parâmetro imci_enable_virtual_column opera no nível de SESSION e não pode ser modificado no console.

Limites da instrução SELECT

Os índices columnstore aceleram exclusivamente consultas SELECT. Caso a consulta contenha qualquer uma das estruturas a seguir, o índice columnstore não conseguirá acelerá-la e a execução retornará ao row store:

  • Leituras com bloqueio: SELECT ... FOR UPDATE ou SELECT ... FOR SHARE

  • Função de janela com definição de frame — por exemplo, ROWS UNBOUNDED PRECEDING na cláusula OVER():

    SELECT
        time,
        subject,
        val,
        SUM(val) OVER (
            PARTITION BY subject
            ORDER BY time
            ROWS UNBOUNDED PRECEDING  -- Frame definition not supported by IMCI
        ) AS running_total
    FROM
        observations;
  • Subconsulta na cláusula GROUP BY — por exemplo, SELECT SUM(a) FROM t1 GROUP BY (SELECT ... FROM ...) as some_subquery

  • Subconsulta em uma expressão ORDER BY — por exemplo, SELECT a FROM t1 ORDER BY (SELECT ... FROM ...) as some_subquery

  • Subconsulta correlacionada na condição ON de um JOIN — por exemplo, WHERE t1.a in (SELECT t2.a FROM t2 INNER JOIN t3 on t2.a = t3.a AND t2.b > t1.b)

  • Subconsulta contendo uma função de janela, onde um item correlacionado aparece na condição HAVING

  • Subconsulta contendo UNION, onde um item correlacionado aparece em uma das subconsultas do UNION

Limites de expressões e funções

Se uma instrução SELECT incluir qualquer expressão ou função sem suporte, toda a consulta retornará à execução via row store.

Expressões de comparação

Expressão

Suporte

Observações

BETWEEN ... AND ...

Sim

Se b e c possuírem tipos de dados diferentes em a BETWEEN b AND c, os resultados poderão divergir da execução via row store.

NOT BETWEEN ... AND ...

Sim

Se b e c possuírem tipos de dados diferentes em a NOT BETWEEN b AND c, os resultados poderão divergir da execução via row store.

GREATEST()

Sim

Os resultados podem divergir da execução via row store caso os parâmetros de entrada incluam simultaneamente um tipo TIME e uma string.

IN()

Sim

Se expr0, expr1, ... possuírem tipos de dados diferentes em IN(expr0, expr1, ...), os resultados poderão divergir da execução via row store.

LEAST()

Sim

Os resultados podem divergir da execução via row store caso os parâmetros de entrada incluam simultaneamente um tipo TIME e uma string.

SOUNDS LIKE

Não

—

Expressões de string

Expressão

Suporte

Observações

MATCH

Sim

Há suporte para BOOLEAN MODE e NATURAL LANGUAGE MODE.

TIMESTAMP()

Sim

Apenas a forma com parâmetro único é suportada. A forma com dois parâmetros não possui suporte.

SOUNDEX()

Não

—

LOAD_FILE()

Não

—

Expressões e funções sem suporte

Os índices columnstore não oferecem suporte às seguintes expressões e funções.

Criptografia e compressão

AES_DECRYPT(), AES_ENCRYPT(), COMPRESS(), RANDOM_BYTES(), STATEMENT_DIGEST(), STATEMENT_DIGEST_TEXT(), UNCOMPRESS(), UNCOMPRESSED_LENGTH(), VALIDATE_PASSWORD_STRENGTH()

Funções JSON

JSON_ARRAY_INSERT(), JSON_CONTAINS_PATH(), JSON_INSERT(), JSON_MERGE(), JSON_MERGE_PATCH(), JSON_MERGE_PRESERVE(), JSON_REPLACE(), JSON_SCHEMA_VALID(), JSON_SCHEMA_VALIDATION_REPORT(), JSON_SEARCH(), JSON_SET(), JSON_STORAGE_FREE(), JSON_STORAGE_SIZE(), JSON_VALUE(), MEMBER OF()

Funções espaciais

ST_AsGeoJSON(), ST_Buffer(), ST_Buffer_Strategy(), ST_Centroid(), ST_Collect(), ST_ConvexHull(), ST_EndPoint(), ST_ExteriorRing(), ST_FrechetDistance(), ST_GeoHash(), ST_GeometryN(), ST_GeometryType(), ST_GeomFromGeoJSON(), ST_HausdorffDistance(), ST_InteriorRingN(), ST_Intersection(), ST_IsClosed(), ST_IsEmpty(), ST_IsSimple(), ST_IsValid(), ST_LatFromGeoHash(), ST_LineInterpolatePoint(), ST_LineInterpolatePoints(), ST_LongFromGeoHash(), ST_NumGeometries(), ST_NumInteriorRing(), ST_NumInteriorRings(), ST_NumPoints(), ST_PointAtDistance(), ST_PointFromGeoHash(), ST_PointN(), ST_StartPoint(), ST_SwapXY()