Skip to main content
Estos ajustes están disponibles en system.settings y se generan automáticamente a partir del código fuente.

optimize_aggregators_of_group_by_keys

Elimina los agregadores min/max/any/anyLast de las claves de GROUP BY en la cláusula SELECT

optimize_append_index

Use restricciones para añadir la condición del índice. El valor predeterminado es false. Valores posibles:
  • true, false

optimize_arithmetic_operations_in_aggregate_functions

Saca las operaciones aritméticas de las funciones de agregación

optimize_const_name_size

Sustituir por un escalar y usar un hash como nombre para constantes grandes (el tamaño se estima por la longitud del nombre). Posibles valores:
  • entero positivo - longitud máxima del nombre,
  • 0 — siempre,
  • entero negativo - nunca.

optimize_count_from_files

Habilita o deshabilita la optimización del conteo de filas en archivos con distintos formatos de entrada. Se aplica a las funciones de tabla/motores file/s3/url/hdfs/azureBlobStorage. Valores posibles:
  • 0 — Optimización deshabilitada.
  • 1 — Optimización habilitada.

optimize_dictget_tuple_element

Reescribe tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2) como dictGet('dict', 'b', key) para evitar recuperar atributos del diccionario innecesarios. Admite acceso posicional (.1, .2, …) y con nombre (.b), y también se aplica a dictGetOrDefault cuando el argumento por defecto es una tupla constante o un tuple(...) de constantes.

optimize_distinct_in_order

Habilita la optimización de DISTINCT si algunas de sus columnas forman un prefijo de la ordenación. Por ejemplo, un prefijo de la clave de ordenación en MergeTree o de la instrucción ORDER BY

optimize_distributed_group_by_sharding_key

Optimiza las consultas GROUP BY sharding_key al evitar una agregación costosa en el servidor iniciador (lo que reduce el uso de memoria de la consulta en ese servidor). Se admiten los siguientes tipos de consultas (y cualquier combinación de ellos):
  • SELECT DISTINCT [..., ]sharding_key[, ...] FROM dist
  • SELECT ... FROM dist GROUP BY sharding_key[, ...]
  • SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY x
  • SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1
  • SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
No se admiten los siguientes tipos de consultas (más adelante podría añadirse soporte para algunas de ellas):
  • SELECT ... GROUP BY sharding_key[, ...] WITH TOTALS
  • SELECT ... GROUP BY sharding_key[, ...] WITH ROLLUP
  • SELECT ... GROUP BY sharding_key[, ...] WITH CUBE
  • SELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
Posibles valores:
  • 0 — Deshabilitado.
  • 1 — Habilitado.
Véase también:
Actualmente requiere optimize_skip_unused_shards (la razón es que, en algún momento, podría habilitarse de forma predeterminada, y solo funcionará correctamente si los datos se insertaron a través de una tabla Distributed; es decir, si los datos se distribuyen según sharding_key).

optimize_dry_run_check_part

Si está habilitado, OPTIMIZE ... DRY RUN valida la parte fusionada resultante con checkDataPart. Si la comprobación falla, se lanza una excepción.

optimize_empty_string_comparisons

Convierte expresiones como col = ” o ” = col en empty(col), y col != ” o ” != col en notEmpty(col), únicamente cuando col es de tipo String o FixedString.

optimize_extract_common_expressions

Permite extraer expresiones comunes de las disyunciones en las expresiones WHERE, PREWHERE, ON, HAVING y QUALIFY. Una expresión lógica como (A AND B) OR (A AND C) puede reescribirse como A AND (B OR C), lo que puede ayudar a aprovechar:
  • índices en expresiones de filtrado simples
  • la optimización de CROSS a INNER JOIN

optimize_functions_to_subcolumns

Habilita o deshabilita la optimización mediante la transformación de algunas funciones para que lean subcolumnas. Esto reduce la cantidad de datos que se deben leer. Estas funciones pueden transformarse: Valores posibles:
  • 0 — Optimización deshabilitada.
  • 1 — Optimización habilitada.

optimize_inverse_dictionary_lookup

Evita repetir la búsqueda inversa en diccionarios mediante búsquedas más rápidas en un conjunto precalculado de posibles valores de clave.

optimize_multiif_to_if

Sustituye ‘multiIf’ por ‘if’ cuando solo haya una condición.

optimize_normalize_count_variants

Reescribe las funciones de agregación semánticamente equivalentes a count() como count().

optimize_on_insert

Habilita o deshabilita la transformación de datos antes de la inserción, como si se hubiera realizado una fusión en este bloque (según el motor de la tabla). Posibles valores:
  • 0 — Deshabilitado.
  • 1 — Habilitado.
Ejemplo La diferencia entre habilitado y deshabilitado: Consulta:
Resultado:
Tenga en cuenta que esta configuración afecta al comportamiento de la vista materializada.

optimize_prewhere_after_pushdown

Ejecuta una segunda pasada de promoción de PREWHERE después de que optimizaciones posteriores del plan de consulta hayan podido añadir filtros adicionales sobre un paso de lectura de MergeTree (p. ej., pushdown de predicados a través de JOIN, reescrituras de proyección). Cuando ya existe un PREWHERE, el nuevo filtro se fusiona con él mediante AND en lugar de permanecer como un paso de filtro independiente.

optimize_qbit_distance_function_reads

Sustituye las funciones de distancia del tipo de dato QBit por otras equivalentes que solo leen del almacenamiento las columnas necesarias para el cálculo.

optimize_read_in_order

Habilita la optimización de ORDER BY en las consultas SELECT para la lectura de datos de tablas MergeTree. Valores posibles:
  • 0 — la optimización de ORDER BY está deshabilitada.
  • 1 — la optimización de ORDER BY está habilitada.
Véase también

optimize_respect_aliases

Si se establece en true, respetará los alias en WHERE/GROUP BY/ORDER BY, lo que ayudará con el descarte de particiones/índices secundarios/optimize_aggregation_in_order/optimize_read_in_order/optimize_trivial_count

optimize_sorting_by_input_stream_properties

Optimiza la ordenación en función de las propiedades de ordenación del flujo de entrada

optimize_substitute_columns

Use restricciones para sustituir columnas. El valor predeterminado es false. Valores posibles:
  • true, false

optimize_syntax_fuse_functions

Permite fusionar funciones de agregación con el mismo argumento. Reescribe una consulta que contiene al menos dos funciones de agregación de sum, count o avg con el mismo argumento como sumCount. Valores posibles:
  • 0 — Las funciones con el mismo argumento no se fusionan.
  • 1 — Las funciones con el mismo argumento se fusionan.
Ejemplo Consulta:
Resultado:

optimize_throw_if_noop

Habilita o deshabilita el lanzamiento de una excepción si una consulta OPTIMIZE no realizó ninguna fusión. De forma predeterminada, OPTIMIZE se completa correctamente incluso si no hizo nada. Esta configuración le permite distinguir estas situaciones y obtener el motivo en el mensaje de excepción. Valores posibles:
  • 1 — El lanzamiento de una excepción está habilitado.
  • 0 — El lanzamiento de una excepción está deshabilitado.

optimize_time_filter_with_preimage

Optimiza los predicados de Date y DateTime convirtiendo las funciones en comparaciones equivalentes sin necesidad de conversiones (p. ej., toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')

optimize_truncate_order_by_after_group_by_keys

Eliminar los elementos finales de ORDER BY una vez que todas las claves de GROUP BY queden incluidas en el prefijo de ORDER BY.

optimize_uniq_to_count

Reescribe uniq y sus variantes (excepto uniqUpTo) como count si la subconsulta tiene DISTINCT o una cláusula GROUP BY.

optimize_using_constraints

Use restricciones para la optimización de consultas. El valor predeterminado es false. Valores posibles:
  • true, false
Última modificación el 23 de julio de 2026