Todos los productos
Search
Centro de documentos

PolarDB:Límites

Última actualización: Sep 05, 2026

La función In-Memory Column Index (IMCI) acelera las consultas de procesamiento analítico (AP) en PolarDB for MySQL. Revise a continuación los límites antes de habilitar IMCI para asegurarse de que su entorno y sus consultas sean compatibles.

Límites generales

Restricción

Detalles

Motor de almacenamiento

Solo InnoDB. Los índices columnstore no son compatibles con tablas que usan otros motores de almacenamiento.

Tablas temporales

No compatible. IMCI no puede acelerar consultas sobre tablas temporales.

Columnas virtuales

Compatible cuando se cumplen ambas condiciones: imci_enable_virtual_column está establecido en ON y no se especificó order_key al crear el índice.

Columnas virtuales: tipo Spatial

No compatible. No es posible crear un índice columnstore en una columna virtual de tipo Spatial.

Multi-master Cluster (Limitless) Edition

Establezca el parámetro del clúster loose_polar_enable_imci_with_mm en ON y luego agregue un nodo global de solo lectura para IMCI.

Nota

imci_enable_virtual_column es un parámetro de nivel SESSION y no se puede modificar en la consola.

Límites de la instrucción SELECT

Los índices columnstore solo aceleran las consultas SELECT. Si una consulta contiene alguna de las estructuras siguientes, el índice columnstore no podrá acelerarla y la ejecución volverá al almacenamiento por filas (row store):

  • Lecturas con bloqueo: SELECT ... FOR UPDATE o SELECT ... FOR SHARE

  • Una función de ventana con definición de marco; por ejemplo, ROWS UNBOUNDED PRECEDING en la 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;
  • Una subconsulta en la cláusula GROUP BY; por ejemplo, SELECT SUM(a) FROM t1 GROUP BY (SELECT ... FROM ...) as some_subquery

  • Una subconsulta en una expresión ORDER BY; por ejemplo, SELECT a FROM t1 ORDER BY (SELECT ... FROM ...) as some_subquery

  • Una subconsulta correlacionada en la condición ON de un JOIN; por ejemplo, WHERE t1.a in (SELECT t2.a FROM t2 INNER JOIN t3 on t2.a = t3.a AND t2.b > t1.b)

  • Una subconsulta que contiene una función de ventana, donde aparece un elemento correlacionado en la condición HAVING

  • Una subconsulta que contiene un UNION, donde aparece un elemento correlacionado en una de las subconsultas del UNION

Límites de expresiones y funciones

Si una instrucción SELECT incluye alguna expresión o función no compatible, toda la consulta vuelve a ejecutarse con el almacenamiento por filas.

Expresiones de comparación

Expresión

Compatible

Notas

BETWEEN ... AND ...

Sí

Si b y c tienen tipos de datos distintos en a BETWEEN b AND c, los resultados pueden diferir de la ejecución con almacenamiento por filas.

NOT BETWEEN ... AND ...

Sí

Si b y c tienen tipos de datos distintos en a NOT BETWEEN b AND c, los resultados pueden diferir de la ejecución con almacenamiento por filas.

GREATEST()

Sí

Si los parámetros de entrada incluyen tanto un tipo TIME como un tipo de cadena, los resultados pueden diferir de la ejecución con almacenamiento por filas.

IN()

Sí

Si expr0, expr1, ... tienen tipos de datos distintos en IN(expr0, expr1, ...), los resultados pueden diferir de la ejecución con almacenamiento por filas.

LEAST()

Sí

Si los parámetros de entrada incluyen tanto un tipo TIME como un tipo de cadena, los resultados pueden diferir de la ejecución con almacenamiento por filas.

SOUNDS LIKE

No

—

Expresiones de cadena

Expresión

Compatible

Notas

MATCH

Sí

BOOLEAN MODE y NATURAL LANGUAGE MODE son compatibles.

TIMESTAMP()

Sí

Solo es compatible la forma con un parámetro. La forma con dos parámetros no es compatible.

SOUNDEX()

No

—

LOAD_FILE()

No

—

Expresiones y funciones no compatibles

A continuación se muestran las expresiones y funciones que no son compatibles con los índices columnstore.

Cifrado y compresión

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

Funciones 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()

Funciones espaciales

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()