Skip to main content
Ces paramètres sont disponibles dans system.settings et sont générés automatiquement à partir du code source.

optimize_aggregators_of_group_by_keys

Élimine les agrégateurs min/max/any/anyLast des clés de GROUP BY dans la clause SELECT

optimize_append_index

Utilisez les contraintes pour ajouter une condition d’index. La valeur par défaut est false. Valeurs possibles :
  • true, false

optimize_arithmetic_operations_in_aggregate_functions

Extraire les opérations arithmétiques des fonctions d’agrégation

optimize_const_name_size

Remplace les grandes constantes par un scalaire et utilise un hachage comme nom (la taille est estimée d’après la longueur du nom). Valeurs possibles :
  • entier positif - longueur maximale du nom,
  • 0 — toujours,
  • entier négatif - jamais.

optimize_count_from_files

Active ou désactive l’optimisation du comptage du nombre de lignes dans des fichiers de différents formats d’entrée. Elle s’applique aux fonctions de table/moteurs file/s3/url/hdfs/azureBlobStorage. Valeurs possibles :
  • 0 — Optimisation désactivée.
  • 1 — Optimisation activée.

optimize_dictget_tuple_element

Réécrit tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2) en dictGet('dict', 'b', key) afin d’éviter de récupérer des attributs de dictionnaire inutiles. Prend en charge l’accès positionnel (.1, .2, …) et nommé (.b), et s’applique également à dictGetOrDefault lorsque l’argument par défaut est un tuple constant ou un tuple(...) de constantes.

optimize_distinct_in_order

Active l’optimisation de DISTINCT si certaines colonnes de DISTINCT constituent un préfixe du tri. Par exemple, un préfixe de la clé de tri dans MergeTree ou de l’instruction ORDER BY

optimize_distributed_group_by_sharding_key

Optimise les requêtes GROUP BY sharding_key en évitant une agrégation coûteuse sur le serveur initiateur (ce qui réduit la consommation mémoire de la requête sur ce serveur). Les types de requêtes suivants sont pris en charge (ainsi que toutes leurs combinaisons) :
  • 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
Les types de requêtes suivants ne sont pas pris en charge (la prise en charge de certains d’entre eux pourra être ajoutée ultérieurement) :
  • 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
Valeurs possibles :
  • 0 — Désactivé.
  • 1 — Activé.
Voir aussi :
À l’heure actuelle, cela nécessite optimize_skip_unused_shards (la raison est qu’à terme, ce paramètre pourrait être activé par défaut, et il ne fonctionnera correctement que si les données ont été insérées via une table Distributed, c’est-à-dire si elles sont distribuées selon sharding_key).

optimize_dry_run_check_part

Lorsqu’il est activé, OPTIMIZE ... DRY RUN valide la partie fusionnée obtenue à l’aide de checkDataPart. Si cette vérification échoue, une exception est levée.

optimize_empty_string_comparisons

Convertit des expressions telles que col = ” ou ” = col en empty(col), et col != ” ou ” != col en notEmpty(col), uniquement lorsque col est de type String ou FixedString.

optimize_extract_common_expressions

Permet d’extraire des expressions communes de disjonctions dans les expressions WHERE, PREWHERE, ON, HAVING et QUALIFY. Une expression logique comme (A AND B) OR (A AND C) peut être réécrite en A AND (B OR C), ce qui peut aider à utiliser :
  • les indices dans des expressions de filtrage simples
  • l’optimisation des CROSS JOIN en INNER JOIN

optimize_functions_to_subcolumns

Active ou désactive l’optimisation qui consiste à transformer certaines fonctions en lecture de sous-colonnes. Cela réduit la quantité de données à lire. Ces fonctions peuvent être transformées : Valeurs possibles :
  • 0 — Optimisation désactivée.
  • 1 — Optimisation activée.

optimize_inverse_dictionary_lookup

Évite les recherches inverses répétées dans le dictionnaire en effectuant des recherches plus rapides dans un ensemble précalculé de valeurs possibles pour la clé.

optimize_multiif_to_if

Remplace « multiIf » comportant une seule condition par « if ».

optimize_normalize_count_variants

Réécrit par défaut en count() les fonctions d’agrégation sémantiquement équivalentes à count().

optimize_on_insert

Active ou désactive la transformation des données avant l’insertion, comme si une fusion avait été effectuée sur ce bloc (selon le moteur de table). Valeurs possibles :
  • 0 — Désactivé.
  • 1 — Activé.
Exemple Différence entre l’état activé et désactivé : Requête :
Résultat :
Notez que ce paramètre influence le comportement des vues matérialisées.

optimize_prewhere_after_pushdown

Exécute un second passage de promotion de PREWHERE après que des optimisations ultérieures du plan de requête ont pu ajouter des filtres supplémentaires au-dessus d’une étape de lecture MergeTree (par ex. pushdown de prédicats via JOIN, réécritures de projection). Lorsqu’un PREWHERE existe déjà, le nouveau filtre y est fusionné avec AND au lieu de rester une étape de filtrage distincte.

optimize_qbit_distance_function_reads

Remplace les fonctions de distance appliquées au type de données QBit par des fonctions équivalentes qui ne lisent dans le stockage que les colonnes nécessaires au calcul.

optimize_read_in_order

Active l’optimisation ORDER BY dans les requêtes SELECT lors de la lecture des données à partir des tables MergeTree. Valeurs possibles :
  • 0 — l’optimisation ORDER BY est désactivée.
  • 1 — l’optimisation ORDER BY est activée.
Voir aussi

optimize_respect_aliases

Si ce paramètre est défini sur true, les alias seront pris en compte dans WHERE/GROUP BY/ORDER BY, ce qui facilitera l’élagage des partitions, l’utilisation des index secondaires, ainsi que optimize_aggregation_in_order, optimize_read_in_order et optimize_trivial_count

optimize_sorting_by_input_stream_properties

Optimise le tri à l’aide des propriétés de tri du flux d’entrée

optimize_substitute_columns

Utilisez les contraintes pour remplacer des colonnes. La valeur par défaut est false. Valeurs possibles :
  • true, false

optimize_syntax_fuse_functions

Permet de fusionner des fonctions d’agrégation ayant un argument identique. Réécrit une requête contenant au moins deux fonctions d’agrégation parmi sum, count ou avg, ayant un argument identique, en sumCount. Valeurs possibles :
  • 0 — Les fonctions ayant un argument identique ne sont pas fusionnées.
  • 1 — Les fonctions ayant un argument identique sont fusionnées.
Exemple Requête :
Résultat :

optimize_throw_if_noop

Active ou désactive le déclenchement d’une exception si une requête OPTIMIZE n’a effectué aucune fusion. Par défaut, OPTIMIZE se termine avec succès même s’il n’a rien fait. Ce paramètre vous permet de distinguer ces situations et d’obtenir la raison dans le message d’exception. Valeurs possibles :
  • 1 — Le déclenchement d’une exception est activé.
  • 0 — Le déclenchement d’une exception est désactivé.

optimize_time_filter_with_preimage

Optimise les prédicats Date et DateTime en transformant les fonctions en comparaisons équivalentes sans conversion (p. ex. toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')

optimize_truncate_order_by_after_group_by_keys

Supprime les éléments ORDER BY en fin de clause une fois que toutes les clés GROUP BY sont couvertes par le préfixe ORDER BY.

optimize_uniq_to_count

Réécrit uniq et ses variantes (sauf uniqUpTo) en count si la sous-requête contient distinct ou une clause GROUP BY.

optimize_using_constraints

Utilisez les contraintes pour optimiser les requêtes. La valeur par défaut est false. Valeurs possibles :
  • true, false
Dernière modification le 23 juillet 2026