Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

paramètres de session optimize_limit_*

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

optimize_limit_by_function_keys

Type
Bool
Par défaut
1
Historique des versions
VersionValeur par défautCommentaire
26.61Nouveau paramètre qui élimine les clés LIMIT BY qui sont des fonctions d'autres clés LIMIT BY.

Élimine, dans la section LIMIT BY, les clés qui sont des fonctions d'autres clés.

Exemple : LIMIT 5 BY x, f(x) devient LIMIT 5 BY x.

optimize_limit_by_in_order

Type
Bool
Par défaut
1
Historique des versions
VersionValeur par défautCommentaire
26.61Nouveau paramètre pour optimiser les requêtes `LIMIT BY` lorsque les colonnes `BY` constituent un préfixe de la clé de tri de la table.

Optimise les requêtes SELECT ... LIMIT N BY <cols> lorsque <cols> (dans n’importe quel ordre) constituent un préfixe de la clé de tri de la table, ou en constituent un après que WHERE col = const a fixé les colonnes de tête. Lorsque ce paramètre est activé, la source lit les données dans l’ordre de la clé primaire, de sorte que les lignes ayant les mêmes valeurs pour les colonnes BY arrivent de façon contiguë dans chaque flux. Lorsque les données arrivent dans un seul flux trié, LIMIT BY les filtre en mode streaming avec une mémoire en O(1), au lieu de construire une table de hachage pour chaque combinaison distincte de colonnes BY rencontrée. Lorsque les données triées arrivent dans plusieurs flux et que les mêmes valeurs BY peuvent apparaître dans plusieurs d’entre eux, chaque flux est d’abord préfiltré en mode streaming jusqu’à LIMIT + OFFSET lignes au maximum par groupe, puis les flux sont combinés et un LIMIT BY final basé sur le hachage déduplique les groupes répartis sur plusieurs flux. Cette passe finale conserve toujours une entrée pour chaque combinaison distincte de colonnes BY, mais elle ne traite que les lignes préfiltrées.

Navigation