optimize_aggregators_of_group_by_keys
optimize_append_index
false.
Valeurs possibles :
- true, false
optimize_arithmetic_operations_in_aggregate_functions
optimize_const_name_size
- entier positif - longueur maximale du nom,
- 0 — toujours,
- entier négatif - jamais.
optimize_count_from_files
file/s3/url/hdfs/azureBlobStorage.
Valeurs possibles :
- 0 — Optimisation désactivée.
- 1 — Optimisation activée.
optimize_dictget_tuple_element
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
optimize_distributed_group_by_sharding_key
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 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 — Désactivé.
- 1 — Activé.
À 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
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
optimize_extract_common_expressions
(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
- length pour lire la sous-colonne size0.
- empty pour lire la sous-colonne size0.
- notEmpty pour lire la sous-colonne size0.
- isNull pour lire la sous-colonne null.
- isNotNull pour lire la sous-colonne null.
- count pour lire la sous-colonne null.
- mapKeys pour lire la sous-colonne keys.
- mapValues pour lire la sous-colonne values.
- 0 — Optimisation désactivée.
- 1 — Optimisation activée.
optimize_inverse_dictionary_lookup
optimize_multiif_to_if
optimize_normalize_count_variants
optimize_on_insert
- 0 — Désactivé.
- 1 — Activé.
optimize_prewhere_after_pushdown
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
QBit par des fonctions équivalentes qui ne lisent dans le stockage que les colonnes nécessaires au calcul.
optimize_read_in_order
- 0 — l’optimisation
ORDER BYest désactivée. - 1 — l’optimisation
ORDER BYest activée.
optimize_respect_aliases
optimize_sorting_by_input_stream_properties
optimize_substitute_columns
false.
Valeurs possibles :
- true, false
optimize_syntax_fuse_functions
- 0 — Les fonctions ayant un argument identique ne sont pas fusionnées.
- 1 — Les fonctions ayant un argument identique sont fusionnées.
optimize_throw_if_noop
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
toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')
optimize_truncate_order_by_after_group_by_keys
optimize_uniq_to_count
uniq et ses variantes (sauf uniqUpTo) en count si la sous-requête contient distinct ou une clause GROUP BY.
optimize_using_constraints
false.
Valeurs possibles :
- true, false