optimize_aggregators_of_group_by_keys
Elimina los agregadores min/max/any/anyLast de las claves de GROUP BY en la cláusula SELECToptimize_append_index
Use restricciones para añadir la condición del índice. El valor predeterminado esfalse.
Valores posibles:
- true, false
optimize_arithmetic_operations_in_aggregate_functions
Saca las operaciones aritméticas de las funciones de agregaciónoptimize_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/motoresfile/s3/url/hdfs/azureBlobStorage.
Valores posibles:
- 0 — Optimización deshabilitada.
- 1 — Optimización habilitada.
optimize_dictget_tuple_element
ReescribetupleElement(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 BYoptimize_distributed_group_by_sharding_key
Optimiza las consultasGROUP 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 distSELECT ... FROM dist GROUP BY sharding_key[, ...]SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY xSELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
SELECT ... GROUP BY sharding_key[, ...] WITH TOTALSSELECT ... GROUP BY sharding_key[, ...] WITH ROLLUPSELECT ... GROUP BY sharding_key[, ...] WITH CUBESELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
- 0 — Deshabilitado.
- 1 — Habilitado.
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:- length para leer la subcolumna size0.
- empty para leer la subcolumna size0.
- notEmpty para leer la subcolumna size0.
- isNull para leer la subcolumna null.
- isNotNull para leer la subcolumna null.
- count para leer la subcolumna null.
- mapKeys para leer la subcolumna keys.
- mapValues para leer la subcolumna values.
- has y notHas para
Map, para leer la subcolumna keys. - mapContainsKeyLike para leer la subcolumna keys.
- mapContainsValueLike para leer la subcolumna values.
- 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_mutations_with_partition_pruning
Cuando está habilitada, ClickHouse detecta automáticamente las condiciones de la clave de partición en la cláusula WHERE de las mutacionesALTER TABLE UPDATE/DELETE y de las sentencias UPDATE/DELETE ligeras en tablas de la familia ReplicatedMergeTree, y procesa únicamente las particiones afectadas en lugar de todas las particiones.
Actualmente, este descarte automático se aplica únicamente a tablas replicadas. En tablas MergeTree no replicadas, use una cláusula IN PARTITION explícita para limitar una mutación a particiones específicas.
Valores posibles:
- 0 — Deshabilitada. Las mutaciones y las actualizaciones ligeras procesarán todas las particiones.
- 1 — Habilitada. Las mutaciones y las actualizaciones ligeras procesarán únicamente las particiones que cumplan la condición WHERE.
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.
optimize_prewhere_after_pushdown
Ejecuta una segunda pasada de promoción dePREWHERE 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 datoQBit 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 BYestá deshabilitada. - 1 — la optimización de
ORDER BYestá habilitada.
optimize_read_in_reverse_order_final
Habilita la lectura de datos en orden inverso de la clave de ordenación en consultasSELECT con el modificador FINAL en tablas ReplacingMergeTree. Solo surte efecto si optimize_read_in_order también está habilitado.
Valores posibles:
- 0 — Se deshabilita la lectura en orden inverso con
FINAL. - 1 — Se habilita la lectura en orden inverso con
FINAL.
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_countoptimize_sorting_by_input_stream_properties
Optimiza la ordenación en función de las propiedades de ordenación del flujo de entradaoptimize_substitute_columns
Use restricciones para sustituir columnas. El valor predeterminado esfalse.
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.
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 esfalse.
Valores posibles:
- true, false