Este tema describe los parámetros para configurar la función In-Memory Column Index (IMCI) en PolarDB for MySQL.
Referencia rápida
|
Parámetro |
Valor predeterminado |
Valores válidos |
Unidad |
|
|
|
|
— |
|
|
|
|
— |
|
|
|
|
count |
|
|
|
|
bytes |
|
|
|
|
bytes |
|
|
|
|
— |
|
|
|
|
row count |
|
|
|
|
row count |
|
|
|
|
— |
|
|
|
|
— |
|
|
|
|
bytes |
|
|
|
|
— |
|
|
|
|
— |
|
|
|
|
— |
|
|
|
|
— |
|
|
|
|
— |
loose_imci_auto_update_statistic
Controla si el optimizador de consultas de IMCI vuelve a recopilar estadísticas cuando las existentes están desactualizadas.
Valor predeterminado:
ASYNCValores válidos:
ASYNC,SYNC,OFF
|
Valor |
Comportamiento |
Cuándo usarlo |
|
|
Vuelve a recopilar estadísticas mediante muestreo asíncrono. La consulta se ejecuta de inmediato, sin esperar a que termine la actualización. |
Recomendado para la mayoría de las cargas de trabajo. Minimiza la latencia de las consultas y mantiene las estadísticas razonablemente actualizadas. |
|
|
Vuelve a recopilar estadísticas mediante muestreo síncrono. La consulta espera a que se actualicen las estadísticas antes de ejecutarse. |
Útil cuando la precisión del plan es más importante que la latencia. Por ejemplo, en trabajos por lotes programados donde un plan subóptimo resultaría costoso. |
|
|
Deshabilita la recopilación automática. Las estadísticas no se actualizan aunque estén desactualizadas. |
Indicado solo si usted gestiona las estadísticas manualmente y desea evitar interferencias de la recopilación automática. |
loose_imci_enable_window_function
Controla si la aceleración de IMCI se aplica a las instrucciones SQL que contienen funciones de ventana.
Valor predeterminado:
2Valores válidos:
0,1,2
|
Valor |
Comportamiento |
Cuándo usarlo |
|
|
La aceleración de IMCI se aplica a todas las instrucciones SQL con funciones de ventana, incluidas aquellas con marcos especificados. |
Adecuado para la mayoría de las cargas de trabajo. Ofrece la cobertura de aceleración más amplia. |
|
|
La aceleración de IMCI se aplica únicamente a las instrucciones SQL con funciones de ventana que no tienen marcos especificados. |
Utilice este valor si detecta problemas de exactitud con funciones de ventana con marco bajo la aceleración de IMCI. |
|
|
Se deshabilita la aceleración de IMCI para todas las instrucciones SQL con funciones de ventana. |
Diseñado para escenarios de resolución de problemas o cuando las consultas con funciones de ventana deben recurrir a la ejecución en almacenamiento por filas. |
loose_imci_max_enum_join_pairs
El número máximo de planes de ejecución equivalentes que evalúa el optimizador de consultas de IMCI cuando tanto IMCI como la reordenación de joins están habilitados.
Valor predeterminado:
2000Valores válidos:
0–4294967295Unidad: count
Un valor más alto permite que el optimizador considere más órdenes de join. Esto puede mejorar la calidad del plan en consultas complejas de varias tablas, aunque aumenta el tiempo de planificación.
loose_imci_min_virtual_memory
La cantidad mínima de memoria asignada a un IMCI durante una consulta.
Valor predeterminado:
DBNodeClassMemory * 3 / 20Valores válidos:
1–9223372036854775807Unidad: bytes
El valor predeterminado se calcula a partir de la memoria de la clase del nodo. Incremente este valor si las consultas de IMCI se ven limitadas por la memoria en nodos con gran capacidad.
loose_imci_max_virtual_memory
La cantidad máxima de memoria que un IMCI puede utilizar durante una consulta.
Valor predeterminado:
9223372036854775807Valores válidos:
1–9223372036854775807Unidad: bytes
En la práctica, el valor predeterminado no tiene límite. Establezca un valor menor para limitar el uso de memoria por consulta de IMCI cuando ejecute cargas de trabajo mixtas.
loose_imci_optimizer_switch
Controla si el optimizador fuerza un plan híbrido para acelerar consultas de tablas anchas.
Valor predeterminado:
'force_hybrid_index_search=OFF'Valores válidos:
'force_hybrid_index_search=OFF','force_hybrid_index_search=ON'
|
Valor |
Comportamiento |
|
|
El optimizador selecciona automáticamente el mejor plan sin forzar un plan híbrido. |
|
|
Fuerza un plan híbrido para las consultas de tablas anchas que cumplen las condiciones. |
Establecer este parámetro en ON no tiene efecto si la tabla no cuenta con estadísticas. Tampoco surte efecto si la estimación de cardinalidad y el cálculo de costos para IMCI no están habilitados. En esos casos, la reordenación de joins para IMCI permanece deshabilitada.
loose_imci_ap_threshold
El umbral de conteo de filas que determina si una instrucción SQL se enruta a un nodo de almacenamiento por columnas.
Valor predeterminado:
50000Valores válidos:
1–18446744073709551615Unidad: row count
Si el número estimado de filas que analiza una instrucción SQL supera este umbral, la instrucción se enruta a un nodo de almacenamiento por columnas. Por ejemplo, con el valor predeterminado de 50000, cualquier instrucción que analice más de 50,000 filas se distribuye a un nodo de almacenamiento por columnas.
Los parámetros loose_imci_ap_threshold y loose_cost_threshold_for_imci funcionan en conjunto. loose_imci_ap_threshold controla el enrutamiento hacia los nodos de almacenamiento por columnas. Por su parte, loose_cost_threshold_for_imci define qué plan de ejecución se utiliza después del enrutamiento. Configure ambos parámetros de manera conjunta para garantizar un comportamiento consistente.
loose_cost_threshold_for_imci
El umbral de conteo de filas que determina si se utiliza un plan de ejecución de almacenamiento por columnas en un nodo de ese tipo.
Valor predeterminado:
50000Valores válidos:
1–18446744073709551615Unidad: row count
Una vez que una instrucción se enruta a un nodo de almacenamiento por columnas (consulte loose_imci_ap_threshold), este umbral determina el plan de ejecución. Si las filas estimadas superan este valor, se utiliza un plan de ejecución de almacenamiento por columnas. De lo contrario, se emplea un plan de ejecución de almacenamiento por filas.
Por ejemplo, con el valor predeterminado de 50000, las instrucciones que analicen más de 50,000 filas usan un plan de ejecución de almacenamiento por columnas. El resto recurre a un plan de ejecución de almacenamiento por filas.
loose_imci_enable_query_trace
Controla si el kernel imprime registros de error durante la optimización de consultas de IMCI.
Valor predeterminado:
OFFValores válidos:
OFF,ON
Habilite este parámetro para recopilar información de diagnóstico cuando resuelva problemas de optimización de consultas de IMCI. Deshabilítelo en producción para evitar la sobrecarga de los registros.
loose_polar_enable_implicit_imci_with_create_table
Controla si se agrega automáticamente un IMCI de tabla completa a cada tabla nueva al momento de crearla.
Valor predeterminado:
OFFValores válidos:
OFF,ON
Cuando se establece en ON, todas las tablas creadas con CREATE TABLE incluyen automáticamente un IMCI de tabla completa. Esta opción resulta útil cuando necesita aplicar la aceleración de IMCI a todas las tablas nuevas sin crear índices de forma explícita.
loose_imci_columnar_advise_buffer_size
La cantidad de memoria disponible para el procedimiento almacenado dbms_imci.columnar_advise().
Valor predeterminado:
8388608(8 MiB)Valores válidos:
0–18446744073709551615Unidad: bytes
Incremente este valor si dbms_imci.columnar_advise() se queda sin memoria al analizar tablas grandes.
loose_etl_from_imci
Controla si los datos se leen desde nodos de almacenamiento por columnas de solo lectura durante las operaciones ETL.
Valor predeterminado:
OFFValores válidos:
OFF,ON
Establézcalo en ON para delegar las lecturas ETL a los nodos de almacenamiento por columnas de solo lectura. Así reducirá la carga en los nodos principales.
loose_etl_from_imci_compress
Controla si los archivos se comprimen cuando los datos se leen desde nodos de almacenamiento por columnas de solo lectura.
Valor predeterminado:
OFFValores válidos:
OFF,ON
Habilite la compresión para reducir el tamaño de la transferencia de red cuando lea datos desde nodos de almacenamiento por columnas de solo lectura durante operaciones ETL.
loose_imci_default_pack_shift (actualizado en PolarDB for MySQL 8.0.1.1.36)
El tamaño del grupo de filas para los IMCI.
Valor predeterminado:
14(16para PolarDB for MySQL 8.0.1.1.36 y versiones posteriores)Valores válidos:
7–18
Para los clústeres que ejecutan PolarDB for MySQL 8.0.1.1.36 o versiones posteriores, el valor predeterminado es 16.
loose_slow_log_record_imci
Controla si la información relacionada con IMCI se anexa a los registros de consultas lentas.
Valor predeterminado:
OFFValores válidos:
OFF,ON
Habilite este parámetro para incluir metadatos de IMCI en las entradas del registro de consultas lentas. Esto facilita el diagnóstico de consultas IMCI lentas.
loose_imci_default_write_policy
La política de escritura para los datos de IMCI.
Valor predeterminado:
TradeoffValores válidos:
Tradeoff,ForCapacity,ForPerformance,Skip4K
|
Valor |
Prioridad |
Comportamiento |
Cuándo usarlo |
|
|
Equilibrada |
Se basa en |
Adecuado para la mayoría de las cargas de trabajo. Equilibra el rendimiento de E/S y la eficiencia de almacenamiento sin ajustes manuales. |
|
|
Eficiencia de almacenamiento |
Divide los datos en varios archivos para minimizar la fragmentación. Genera como máximo un fragmento de 4 KB por escritura. |
Recomendado cuando el espacio de almacenamiento es la principal preocupación. |
|
|
Rendimiento de E/S |
Selecciona el archivo con el |
Más indicado para cargas de trabajo intensivas en escritura donde el rendimiento tiene prioridad sobre la eficiencia de almacenamiento. |
|
|
Eficiencia moderada |
Utiliza la misma lógica de división que |
Útil cuando requiere fragmentos ligeramente mayores a los de |